Python OpenCV: удаление изображений для распознавания текста - PullRequest
2 голосов
/ 30 мая 2019

У меня есть этот набор изображений, которые я хочу снять шум для запуска OCR:

enter image description here

enter image description here

Я пытаюсь прочитать 7810 с изображения.

Я пробовал

cv2.threshold(img, 128, 255,cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)
cv2.fastNlMeansDenoising(img,None,60,10,20)

и некоторые морфологические выражения, но, похоже, ни одно из них не помогает очистить этодостаточно изображения.

Есть ли какие-либо рекомендации о том, как отфильтровать это изображение в достаточной степени, чтобы я мог запустить OCR или некоторые сценарии обнаружения ML для этого типа pytesseract?

Ответы [ 2 ]

1 голос
/ 30 мая 2019

Вы можете начать с использования медианного фильтра для удаления шума соли и перца:

cv2.medianBlur(source, 3)

Тогда попробуйте пороговое значение Оцу, как вы это сделали. Возможно, это не решение проблемы, но это облегчает работу алгоритма обнаружения текста на изображении

0 голосов
/ 30 мая 2019

Вы можете попробовать использовать cv2.adaptiveThreshold, поскольку ваше изображение имеет разные условия освещения в разных областях.

enter image description here

import cv2

image = cv2.imread("1.jpg",0)
thresh = cv2.adaptiveThreshold(image,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,21,2)

cv2.imshow('thresh', thresh)
cv2.waitKey(0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...