将 PyTesseract 识别的图像转换为数组

Converting image identified by PyTesseract to an array

我有一张包含数字列表的图像,我使用 PyTesseract 扫描了这些数字以构建字符串。具体来说,代码如下:

from PIL import Image
import pytesseract
from scipy import stats
import numpy as np

pytesseract.pytesseract.tesseract_cmd = r'C:\\Program Files\\Tesseract-OCR\\tesseract.exe'

str1=pytesseract.image_to_string(Image.open('D:/Image.png'))

这是我正在扫描的图像:

问题在于 PyTesseract 将图像扫描为单个字符而不是整数。

我想了解为什么会发生这种情况,以及我该怎么做才能获得预期的结果。

简而言之,PyTesseract 不是扫描数字列表中的整数,而是将它们作为单个字符进行扫描。我如何告诉它扫描整数并将它们放入数组中?

好吧,如果你只想得到一个列表,使用re.splitstrip就可以解决。(因为tesseract的结果有一些错误)。

你可以试试这个:

import pytesseract
import re

data = pytesseract.image_to_string('OCR.png')
dataList = re.split(r',|\.| ',data) # split the string
resultList = [int(i.strip()) for i in dataList if i != ''] # remove the '' str and convert str to int.
print(resultList)

# result: [71, 194, 38, 1701, 89, 76, 11, 83, 1629, 48, 94, 63, 132, 16, 111, 95, 84, 341, 975, 14, 40, 64, .......