Скобки OpenCV Detection только в текстах - PullRequest
0 голосов
/ 18 апреля 2020

Мне нужно использовать OpenCV для обнаружения всех блоков "A) B) C) D) E) в изображении, чтобы подготовить их к отправке в OCR. Из моего ограниченного знания OpenCV, вот одно из моих возможных решений, однако я получил слишком много контуров и не знаю, как отделить нежелательные контуры. Вот мой код и вывод. Я на неправильном пути или какие шаги я должен следовать. спасибо

import cv2
import numpy as np
from matplotlib import pyplot as plt

gray = cv2.imread( "D:/resimler/1.jpeg", 0 )

orjinal = gray.copy()

image = cv2.GaussianBlur( gray,(5,5 ) ,cv2.BORDER_DEFAULT )

image = cv2.adaptiveThreshold( image, 255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,11,2)

image = cv2.bitwise_not(image)

contours, hierarchy = cv2.findContours( image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_TC89_KCOS )

for cnt in contours:
    # get rectangle bounding contour
    [x,y,w,h] = cv2.boundingRect( cnt )
    cv2.rectangle( image, ( x, y ),( x + w, y + h ), (255, 0, 0 ), 2 )


plt.figure( figsize = ( 12, 18 ) )
plt.imshow( image )
plt.show()

enter image description here

enter image description here

...