Я делаю проект о распознавании рукописного ввода, поэтому у меня есть изображение, я должен распознать текст в нем, поэтому я сделал все символы на изображении объектами (контуром), проблема в том, что после печати символов его печатается несортированным (или по 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))
intRectx
иintRectY
являются правильными атрибутами, если вы получаетеAttributeError
16.01.2019a.sort(key = lambda x: (x.intRectY, x.intRectx))
16.01.2019a.sort(key = lambda x: (-x.intRectY, x.intRectx))
, я не могу точно сказать, что именно вы хотите, так как ваш вывод немного запутался, но это может сработать для вас 17.01.2019