我正在做一个有关手写识别的项目,所以我要有图片才能识别其中的文字,所以我所做的就是我将图片中的所有字符都变成了对象(轮廓),问题是打印后其打印的字符未排序(或按x或y),而我需要的是从左上角到右下角对列表中的完整对象进行排序。
我试图按y坐标排序,然后按x坐标从头开始按x坐标排序。
a.sort(key = operator.attrgetter("intRectx"))
a.sort(key = operator.attrgetter("intRectY"))
我希望该项目将按照编写的字符进行打印。
class Data():
num1 = None
num2 = None
intRectX = 0 # x
intRectY = 0 # y
num3 = 0
num4 = 0
num5 = 0.0
a = [] # we will fill these shortly
for Data in all: # for all contours
if Data.checkIfContourIsValid(): # check if valid
a.append(Data) # if so, append to valid contour list
a.sort(key = lambda x: (x.intRectY, x.intRectx))
答案 0 :(得分:2)
使用lambda
表达式排序并返回tuple
:
a.sort(key = lambda x: (x.intRectx, x.intRectY))
编辑:
如果要按y排序,则x交换顺序:
a.sort(key = lambda x: (x.intRectY, x.intRectx))