【发布时间】:2012-03-26 18:50:32
【问题描述】:
如何表示:
- 使用油漆创建新图像(任何尺寸)
- 在此图片中添加字母 A
- 尝试识别 -> tesseract 找不到任何字母
- 将此字母复制粘贴到此图像 5-6 次
- 尝试识别 -> tesseract 会找到所有字母
为什么?
【问题讨论】:
如何表示:
为什么?
【问题讨论】:
您必须将“页面分割模式”设置为“单字符”。
例如,在 Android 中,您可以执行以下操作:
api.setPageSegMode(TessBaseAPI.pageSegMode.PSM_SINGLE_CHAR);
【讨论】:
PageSegMode.SingleChar 解决了这个问题。
api.SetPageSegMode(tesseract::PSM_SINGLE_CHAR); 对于 C++ 用户 ;)
--psm 10
执行该配置的python代码如下:
import pytesseract
import cv2
img = cv2.imread("path to some image")
pytesseract.image_to_string(
img, config=("-c tessedit"
"_char_whitelist=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
" --psm 10"
" -l osd"
" "))
--psm 标志定义了页面分割模式。
根据 tesseract 的文档,10 表示:
将图像视为单个字符。
所以要识别单个字符,您只需要使用:--psm 10 标志。
【讨论】:
需要将 Tesseract 的分页方式设置为“单字符”。
【讨论】:
tesseract $image $outbase -psm 10。 -psm 设置页面分割模式,模式 10 用于单个字符。这一切都在手册页中。
你见过吗?
https://code.google.com/p/tesseract-ocr/issues/detail?id=581
错误列表将其显示为“不再是问题”。
init Tesseract 之前使用baseApi.setVariable("tessedit_char_whitelist", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"); 代码
【讨论】: