从嘈杂的图像中提取数字
我想从手机摄像头拍摄的图像中提取文本。 首先,我尝试使用以下代码将图像转换为灰度:
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
。
这是我的照片:
这是我的完整代码:
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)