#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. Я хочу измерить косинусное сходство каждой строки изображения по отношению к эталонной белой линии и эталонной черной линии. Я хочу знать, насколько похожи разные строки изображения, связанные с черной линией и белой линией.