Динамическое ядро ​​для образа - PullRequest
0 голосов
/ 25 февраля 2019

Что касается извлечения текста, как динамически установить размер ядра для операции morphologyEx в cv2? В основном, я хочу извлечь слово из изображения в зависимости от различных типов шрифтов, размера.Мой код работает только для определенных изображений. Как узнать, какой размер ядра должен соответствовать содержимому изображения?Мой фрагмент кода ниже.

def text_ROI_word(thresh,output):
kernel = np.ones((2,1), np.uint8)
kernel2 = np.ones((1,4), np.uint8)
temp_img = cv2.morphologyEx(thresh,cv2.MORPH_CLOSE,kernel,iterations=2)
word_img = cv2.dilate(temp_img,kernel2,iterations=1)
(image,contours,hierarchy ) = cv2.findContours(word_img.copy(), cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
for cnt in contours:
    x,y,w,h = cv2.boundingRect(cnt)
    cv2.rectangle(output,(x-1,y-5),(x+w,y+h),(255,0,0),1)
return output
image = cv2.imread("local path")
output_image_word=image.copy()
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
ret,th = 
cv2.threshold(gray_image,0,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)
output_image_word = text_ROI_word_2(th,output_image_word)
cv2.imwrite("local path", output_image_word)

пример изображения

Используется библиотека тессерактов , но для извлечения слова (текста) из изображения требуется конечное (минуты) время.

...