У меня есть этот набор изображений, которые я хочу снять шум, чтобы запустить OCR на нем:
Я пытаюсь прочитать 7810 с картинки.
Я пытался
cv2.threshold(img, 128, 255,cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)
cv2.fastNlMeansDenoising(img,None,60,10,20)
И некоторые морфологические выражения, но ни один, кажется, не работает, чтобы очистить это изображение достаточно.
Любые рекомендации о том, как отфильтровать это изображение в достаточной степени, чтобы я мог запустить OCR или некоторые сценарии обнаружения ML на этом, как pytesseract?
2 ответа
Вы можете попробовать использовать { X0}}, поскольку ваше изображение имеет разные условия освещения в разных областях.
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)
Вы можете начать с использования медианного фильтра для удаления соли и перца:
cv2.medianBlur(source, 3)
Затем попробуйте пороговое значение Otsu, как вы сделали. Возможно, это не решение проблемы, но это облегчает работу алгоритма обнаружения текста на изображении.
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.