如何限制 PyTesseract 识别的字符大小(以像素为单位)?
How do I limit the size (in pixels) of characters to be recognized by PyTesseract?
我正在尝试使用 PyTesseract 来识别一些扫描文档中的文本,这些文档包含简单的文本和复杂的图表。
PyTesseract 将图表(或其部分)误解为字符,我不想发生这种情况。这个问题的解决方案是限制要识别的字符的最大大小(宽度或高度),并忽略其余较大的字符(即图表)
有什么方法可以限制 PyTesseract 识别的最大字符大小?
我在 Jupyter Notebook 上使用 PyTesseract 版本 - LooseVersion ('5.0.0-alpha.20200328') -
Python3.8.5
我找到了解决这个问题的简单方法,所以我把它贴在这里。
我用了 pytesseract.image_to_boxes
data = pytesseract.image_to_boxes(img)
boxes = re.split(' ', data)
line = list()
coords = list()
letters = [boxes[0]]
for i in range(1, len(boxes)):
if (i%5 != 0):
line.append(int(boxes[i]))
else:
letters.append(boxes[i][2:])
coords.append(line)
line = []
for i in range(0, len(coords)):
print(letters[i], coords[i])
以上代码将字母和坐标分离到两个各自的列表中。
在此之后我使用了条件
if (abs(coords[i][2] - coords[i][0]) < size) and (abs(coords[i][3] - coords[i][1]) < size+5):
筛选出需要的字符
我正在尝试使用 PyTesseract 来识别一些扫描文档中的文本,这些文档包含简单的文本和复杂的图表。 PyTesseract 将图表(或其部分)误解为字符,我不想发生这种情况。这个问题的解决方案是限制要识别的字符的最大大小(宽度或高度),并忽略其余较大的字符(即图表)
有什么方法可以限制 PyTesseract 识别的最大字符大小?
我在 Jupyter Notebook 上使用 PyTesseract 版本 - LooseVersion ('5.0.0-alpha.20200328') - Python3.8.5
我找到了解决这个问题的简单方法,所以我把它贴在这里。 我用了 pytesseract.image_to_boxes
data = pytesseract.image_to_boxes(img)
boxes = re.split(' ', data)
line = list()
coords = list()
letters = [boxes[0]]
for i in range(1, len(boxes)):
if (i%5 != 0):
line.append(int(boxes[i]))
else:
letters.append(boxes[i][2:])
coords.append(line)
line = []
for i in range(0, len(coords)):
print(letters[i], coords[i])
以上代码将字母和坐标分离到两个各自的列表中。 在此之后我使用了条件
if (abs(coords[i][2] - coords[i][0]) < size) and (abs(coords[i][3] - coords[i][1]) < size+5):
筛选出需要的字符