Pytesser 中的数字字符识别
Numerical character recognition in Pytesser
我正在从事一个需要从商品交易所获取价格的项目。不幸的是,交易所没有可用的网络服务或其他插件可以让我从交易屏幕上获取价格。
我想我可以自动制作价格的屏幕截图并将所有价格拆分为单独的图片。之后,我使用 Pytesser V 0.0.1 库对 Tesseract 3.0.2 和 Python v2.7 中的 Pillow 3.1.0 进行处理。然而,图像到文本的转换(通过 image_to_string 函数)是戏剧性的,因为在大多数情况下 0 变成 o 或 5 变成 s 并且有时转换是随机的,这使得很难仅替换这些字符。我已经将图像调整到更大的尺寸并使用了抗锯齿功能,但结果并没有变好。有没有办法将字符集限制为仅数字和小数点?以及如何提高转换质量?
也许我的方法太繁琐了,你们有更好的方法吗?感谢您的帮助:)
Is there a way to limit the set of characters to only digits and a dot
for decimals?
是的!使用包 pyslibtesseract:
from pyslibtesseract import TesseractConfig, PageSegMode
config_line = TesseractConfig(psm=PageSegMode.PSM_SINGLE_LINE)
config_line.add_variable('tessedit_char_whitelist', '0123456789.')
And how can the quality of the conversion be improved?
您需要使用OpenCV来提高图像质量。
我正在从事一个需要从商品交易所获取价格的项目。不幸的是,交易所没有可用的网络服务或其他插件可以让我从交易屏幕上获取价格。
我想我可以自动制作价格的屏幕截图并将所有价格拆分为单独的图片。之后,我使用 Pytesser V 0.0.1 库对 Tesseract 3.0.2 和 Python v2.7 中的 Pillow 3.1.0 进行处理。然而,图像到文本的转换(通过 image_to_string 函数)是戏剧性的,因为在大多数情况下 0 变成 o 或 5 变成 s 并且有时转换是随机的,这使得很难仅替换这些字符。我已经将图像调整到更大的尺寸并使用了抗锯齿功能,但结果并没有变好。有没有办法将字符集限制为仅数字和小数点?以及如何提高转换质量?
也许我的方法太繁琐了,你们有更好的方法吗?感谢您的帮助:)
Is there a way to limit the set of characters to only digits and a dot for decimals?
是的!使用包 pyslibtesseract:
from pyslibtesseract import TesseractConfig, PageSegMode
config_line = TesseractConfig(psm=PageSegMode.PSM_SINGLE_LINE)
config_line.add_variable('tessedit_char_whitelist', '0123456789.')
And how can the quality of the conversion be improved?
您需要使用OpenCV来提高图像质量。