Мне нужно использовать 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()