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

Я пытаюсь создать рукописную текстовую систему для сравнения каждого текста, как они различаются друг с другом. Мне нужно извлечь сегмент строки, чтобы создать каждое изображение для каждого текста, а затем продолжить работу для различия изображений. Я попытался сослаться на код, размещенный здесь. https://i.stack.imgur.com/lLXfD.jpg

вот мой код в отсортированных контурах, но он не создает правильную граничную рамку.

import cv2
import numpy as np
import imutils

#sort contours
def sort_contours(cnts):
    # initialize the reverse flag and sort index
    reverse = False
    i = 1
    
    boundingBoxes = [cv2.boundingRect(c) for c in cnts]
    (cnts, boundingBoxes) = zip(*sorted(zip(cnts, boundingBoxes),
        key=lambda b:b[1][i], reverse=reverse))
    # return the list of sorted contours and bounding boxes
    return (cnts)





#import image
image = cv2.imread("002.jpg")
cv2.imshow('orig',image)


#grayscale
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
cv2.imshow('gray',gray)
cv2.waitKey(0)

#binary
#ret,thresh = cv2.threshold(gray,127,255,cv2.THRESH_BINARY_INV|cv2.THRESH_OTSU)
ret,thresh = cv2.threshold(gray,127,255,cv2.THRESH_BINARY_INV)
cv2.imshow('binary',thresh)
cv2.waitKey(0)

#dilation
kernel = np.ones((5,100), np.uint8)
#kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 150))
img_dilation  = cv2.dilate(thresh, kernel, iterations=1)
cv2.imshow('dilated',img_dilation )
cv2.waitKey(0)


#find contours
ctrs= cv2.findContours(img_dilation.copy(), cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)

# loop over the (now sorted) contours 
sorted_ctrs = sort_contours(imutils.grab_contours(ctrs))

for i, ctr in enumerate(sorted_ctrs):
    # Get bounding box
    x, y, w, h = cv2.boundingRect(ctr)

    # Getting ROI
    roi = image[y:y+h, x:x+w]

    # show ROI
    cv2.imshow('segment no:'+str(i),roi)
    cv2.rectangle(image,(x,y),( x + w, y + h ),(90,0,255),2)
    cv2.waitKey(0)

cv2.imshow('marked areas',image)
cv2.imwrite('bounded_box_image.png',image)
cv2.waitKey(0) 

Оригинал против границы

Я ценю предложения. Спасибо


person om pal    schedule 01.09.2020    source источник