Я работаю над простой проблемой OCR для данных изображений.
Я знаю, что этот метод не идеален и усложняет простую задачу, но обнаружение Canny хорошо работает на стольких различных изображениях, что я бы хотел бы видеть это через:
gray_image = gray_image.astype('uint8')
Iedge = cv2.Canny(gray_image, 100, 200)
cnts = cv2.findContours(Iedge.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE)
cnts = imutils.grab_contours(cnts)
th, im_th = cv2.threshold(Iedge, 220, 255, cv2.THRESH_BINARY_INV);
Входное изображение: google-drive
Это дает мне следующее изображение: результат
Я хочу получить двоичное изображение с выделенным только текстом, наложив или заполнив внутреннюю часть с помощью findContours. Я совершенно новичок в этом, но обнаружение краев дает отличные результаты на моих различных наборах изображений.