将 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.split
和strip
就可以解决。(因为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, .......
我有一张包含数字列表的图像,我使用 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.split
和strip
就可以解决。(因为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, .......