Извлечь цифру из шумного изображения
Я хочу извлечь текст из изображения, полученного с помощью камеры мобильного телефона. Во-первых, я пытаюсь преобразовать изображение в оттенки серого, используя этот код:
imgg = Image.open('originale.jpg').convert('LA')
Во-вторых, я пытаюсь портировать серое изображение, чтобы получить изображение только с черным и белым с этим кодом: *
retval, threshold = cv2.threshold(grayscaled, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
cv2.imwrite("threshold.png", threshold)
В-третьих, я пытаюсь извлечь текст с помощью pytesseract, но у меня неправильный результат с этим кодом.
result5 = pytesseract.image_to_string(Image.open("threshold.png"))
Это изображение, которое я хочу извлечь из числа цифр, например: Мой ожидаемый результат:111 2 11 4 1 23 2 3
.
и это мое изображение:
originale.jpg
threshold.png
А это мой полный код:
import cv2
import numpy as np
import pytesseract
from PIL import Image
img = cv2.imread('originale.jpg')
grayscaled = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
retval, threshold = cv2.threshold(grayscaled, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
cv2.imwrite("threshold.png", threshold)
result = pytesseract.image_to_string(Image.open("threshold.png"))
print(result)