python - 为 Tesseract OCR 清理照片的方法?
问题描述
我是 Tesseract 的新手,想知道是否有任何方法可以为简单的 OCR 程序清理照片以获得更好的结果。提前感谢您的帮助!我正在使用的代码:
#loads tesseract
tess.pytesseract.tesseract_cmd =
#filepath
file_path =
image = Image.open(file_path)
#processes image
text = tess.image_to_string(image, config='')
print(text)
解决方案
我过去使用pytesseract
过,经过以下四次修改,只要文本字体不太小,我几乎可以阅读任何内容。pytesseract
即使在调整大小后,似乎也很难写出小字。
- 转换为黑白 -
将图像转换为黑白通常会提高程序的识别率。我使用OpenCV来执行此操作,并从本文末尾获取了代码。
- 庄稼 -
如果您所有的照片都采用相似的格式,因为您需要的文本总是在同一个位置,我建议您裁剪您的照片。如果可能,只将照片的确切部分传递给pytesseract
您要分析的部分,程序分析的越少越好。就我而言,我正在截屏并指定截屏的确切区域。
- 调整大小 -
您可以做的另一件事是调整原始照片的缩放比例。有时在调整到几乎两倍的初始大小后pytesseract
,阅读文本会容易得多。一般来说,更大的文本更好,但有一个限制,因为调整大小后照片可能变得过于像素化而无法识别。
- 配置 -
我注意到它pytesseract
比数字更容易识别文本。如果可能的话,把照片分成几个部分,当你遇到数字问题时,你可以使用:
pytesseract.image_to_string(image, config='digits')
推荐阅读
- android - 更改位图颜色
- operating-system - 在python中打开具有特定扩展名的文件
- java - 流 Zip 文件:java.util.zip.ZipException:无效条目大小(预期为 0,但得到 419 字节)
- javascript - 使用 jQuery 加载内容后渲染 MathJax
- javascript - 如何像这样使用 CryptoJS 解密从 Java 加密的密码
- amazon-web-services - 使用 Route 53 的 Cloudfront 重定向
- ruby-on-rails - 通过设计在 Rails 上进行 WebAuthn
- python - 将两个 Pandas 系列索引合二为一
- node.js - 从节点 js 客户端将消息放入 Azure 服务总线中的死信队列
- powerbi - 来自 Power BI 高级编辑器的 adls Gen2 的 URL 连接