我在使用pytesseract时遇到了一些问题。我需要配置Tesseract,使其能够识别单个数字,同时也只能接受数字,因为数字零经常与字母'O'混淆。
像这样:
target = pytesseract.image_to_string(im,config='-psm 7',config='outputbase digits')
tesseract-4.0.0a
支持以下 psm
。如果您想进行单个字符识别,请设置 psm = 10
。如果您的文本仅包含数字,则可以将 tessedit_char_whitelist=0123456789
设置为。
Page segmentation modes:
0 Orientation and script detection (OSD) only.
1 Automatic page segmentation with OSD.
2 Automatic page segmentation, but no OSD, or OCR.
3 Fully automatic page segmentation, but no OSD. (Default)
4 Assume a single column of text of variable sizes.
5 Assume a single uniform block of vertically aligned text.
6 Assume a single uniform block of text.
7 Treat the image as a single text line.
8 Treat the image as a single word.
9 Treat the image as a single word in a circle.
10 Treat the image as a single character.
11 Sparse text. Find as much text as possible in no particular order.
12 Sparse text with OSD.
13 Raw line. Treat the image as a single text line,
bypassing hacks that are Tesseract-specific.
这里是使用多个参数的image_to_string
的示例用法。
target = pytesseract.image_to_string(image, lang='eng', boxes=False, \
config='--psm 10 --oem 3 -c tessedit_char_whitelist=0123456789')
页面分割模式:
仅方向和脚本检测(OSD)。
带有OSD的自动页面分割。
自动页面分割,但没有OSD或OCR。(未实施)
完全自动页面分割,但没有OSD。(默认)
假设文本是可变大小的单列。
假设文本是垂直对齐的单一块统一文本。
假定文本为单一块统一文本。
将图像视为单一文本行。
将图像视为单个单词。
将图像视为圆形中的单个单词。
将图像视为单个字符。
稀疏文本。按任意顺序尽可能多地查找文本。
带有OSD的稀疏文本。
原始行。将图像视为单个文本行,绕过Tesseract特定的黑客程序。
OCR引擎模式:
pytesseract.image_to_string(export_image ,lang='eng', config='--psm 13 --oem 1 -c tessedit_char_whitelist=ABCDEFG0123456789')
string.digits
(来自Python字符串模块)而不是硬编码。https://docs.python.org/3/library/string.html - Raleigh L.