Я пытаюсь извлечь текст из изображения. Вывод, который я получаю, не очень точный.Интересно, могу ли я предпринять какие-либо дополнительные шаги для дальнейшей обработки изображения, чтобы повысить точность распознавания.
Я рассмотрел несколько различных способов обработки изображения и улучшения результатов распознавания.Изображение довольно маленькое, и я смог слегка его взорвать, но безрезультатно.
Изображение всегда будет горизонтальным, никакого другого текста, кроме цифр, не будет.Максимальное число увеличится до 55000.
Пример изображения:
После обработки изображения мое изображениеувеличивается на 4 по осям X и Y.И некоторая насыщенность удаляется, хотя это совсем не повышает точность.
image = self._process(scale=6, iterations=2)
text = pytesseract.image_to_string(image, config="--psm 7")
Мой метод процесса делает следующее:
# Resize and desaturate.
image = cv2.resize(image, None, fx=scale, fy=scale,
interpolation=cv2.INTER_CUBIC)
image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Apply dilation and erosion.
kernel = np.ones((1, 1), np.uint8)
image = cv2.dilate(image, kernel, iterations=iterations)
image = cv2.erode(image, kernel, iterations=iterations)
return image
Ожидается: "10411"
Фактическое значение варьируется, обычно это неузнаваемая строка, или некоторые числа анализируются, но коэффициент точности слишком низок, чтобы его можно было использовать.