Я очень новичок в OpenCV Python, и мне действительно нужна помощь здесь.Извлечение текста для ввода текста в форме с помощью OpenCV
Так что я пытаюсь сделать здесь, чтобы извлечь эти слова на изображении ниже.
Слово и формы все рисованные, так что они не являются совершенными. Я сделал некоторую кодировку ниже.
Прежде всего, я полутоновое изображение
img_final = cv2.imread(file_name)
img2gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
Затем я использую THRESH_INV для показа содержимого
ret, new_img = cv2.threshold(image_final, 100 , 255, cv2.THRESH_BINARY_INV)
После чего, я расширяющего содержания
kernel = cv2.getStructuringElement(cv2.MORPH_CROSS,(3 , 3))
dilated = cv2.dilate(new_img,kernel,iterations = 3)
I расширяется изображение связано с тем, что я могу идентифицировать текст как один кластер
После этого, я применяю boundingRect по контуру и нарисуйте вокруг прямоугольника
contours, hierarchy = cv2.findContours(dilated,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE) # get contours
index = 0
for contour in contours:
# get rectangle bounding contour
[x,y,w,h] = cv2.boundingRect(contour)
#Don't plot small false positives that aren't text
if w < 10 or h < 10:
continue
# draw rectangle around contour on original image
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,255),2)
Это то, что я после этого.
Я только в состоянии обнаружить один из текста. Я пробовал много других методов, но это результаты шкафа, которые у меня есть, и это не соответствует требованию.
Причина, по которой я могу идентифицировать текст, так что я могу получить координату X и Y каждого текста в этом изображении, поставив ограничивающий прямоугольник «boundingRect()».
Пожалуйста, помогите мне. Большое вам спасибо
Вы можете не использовать Tesseract делать OCR на изображении? – James
@ Kells1986 Причина в том, что мне нужно знать координаты каждого из этих слов для других целей. С boundingRect() вокруг идентифицированного слова я смогу получить координаты X и Y этого самого изображения – PengGusto