Сегментация строк в рукописном тексте

#python #opencv #image-segmentation

#python #opencv #изображение-сегментация

Вопрос:

Я разрабатываю простой скрипт для извлечения элементов каждой из строк изображения, содержащего рукописный текст.

После определения порогового значения изображения я добавляю в матрицу Numpy полную белую строку и полную черную строку (первые две строки). Я хочу попарно вычислить косинусное сходство белой строки и каждой из строк матрицы изображения, я хочу сделать то же самое с черной строкой. Я хочу использовать косинусное сходство (черная строка и белая строка) в качестве функции ввода, чтобы обучить Knn с помощью scikit learn.

Код:

 img = cv2.imread('test.jpg', 0)

ret2,t = cv2.threshold(img,0,255,cv2.THRESH_BINARY cv2.THRESH_OTSU)
white=np.full((t.shape[1]), 255, dtype=np.uint8)
black=np.full((t.shape[1]), 1,   dtype=np.uint8)
tn=np.vstack((white,np.vstack((black,t))))

tn[tn==0]=1 #Set all 0 values to 1

cdist=distance.cdist(tn, tn, 'cosine')
  

Проблема в том, что cdist равен 0. Я не получаю ожидаемые значения. Чего мне не хватает?

Существуют ли какие-либо другие методы, которые следует учитывать при разделении изображения с текстом на строки?

Спасибо.

Комментарии:

1. Можете ли вы привести примеры изображений и описать проблему чуть более подробно? сложно понять, что вы получаете после порогового значения и зачем вам нужны белые и черные строки.

2. Я хочу измерить косинусное сходство каждой строки изображения по отношению к эталонной белой линии и эталонной черной линии. Я хочу знать, насколько похожи разные строки изображения, связанные с черной линией и белой линией.