Python+OpenCV+Tesseract实现OCR字符识别

目录

一、OCR是什么

二、使用步骤

1.下载tesseract

2.安装pytesseract

3.验证测试

结语

参考


一、OCR是什么

         光学字符识别(英语:Optical Character Recognition,OCR)是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。

二、使用步骤

1.下载tesseract

        首先要下载tesseract:Index of /tesseracthttps://digi.bib.uni-mannheim.de/tesseract/

        进入下载页面,可以看到各种exe文件,其中文件名中带有dev的为开发版,不带dev的为稳定版,读者可以按需下载,我这里选择下载5.2.0的版本。

        下载完成后,双击安装,值得注意的是,在安装过程到此页面时,需要勾选“Additional language data(download) ”选项来安装OCR支持识别的语言包,这样OCR便可以识别多国语言。

2.安装pytesseract

   为了能在python中使用tesseract的功能,需要pip安装pytesseract:

pip install pytesseract

        若安装缓慢,可以使用镜像进行安装:

pip install pytesseract -i https://pypi.douban.com/simple

3.验证测试

  接下来,需要验证是否能正常使用OCR功能。使用如下图片为例进行测试:

         测试代码:

from PIL import Image
import pytesseract


text = pytesseract.image_to_string(Image.open('OCR_test.png'), lang='chi_sim')
print(text)

       我们首先利用Image读取了图片文件,然后调用了pytesseract的image_to_string()方法,再将其识别结果输出。

    值得注意的是,image_to_string()方法默认只识别英文,若还要识别中文,添加lang=’chi_sim’参数即可。此外,有可能中文识别出来了,但是乱码,需要相应地将text转换为你所用的中文编码方式,如:text.decode("utf8")就可以了。

       代码运行结果如下:

        如果遇到报错找不到pytesseract,不要慌,问题不大:

             解决方案1:

        1.找到python的安装路径下的pytesseract:

        2.用文本编辑器打开,查找tesseract_cmd

                将原来的 tesseract_cmd = 'tesseract' 改为: tesseract_cmd = 'OCR的安装路径下的tessract.exe'

                例如我的是 tesseract_cmd = r'D:\software\Tesseract-OCR\tesseract.exe'

                注意需要对路径中的斜杠进行转义。

             解决方案2:

                 增加一句代码即可:

from PIL import Image
import pytesseract



# 使用此行代码进行设置,可以不改动pytesseract.py中的源码
pytesseract.pytesseract.tesseract_cmd = r'D:\software\Tesseract-OCR\tesseract.exe'

text = pytesseract.image_to_string(Image.open('OCR_test.png'), lang='chi_sim')
print(text)

结语

        至此,便完成了tesseract的安装与使用,就可以进行OCR识别了。

        若识别效果不好,可二值化图像并消除噪声后再识别,此外,image_to_string()方法还有几个其它的参数,还可尝试更改参数以获得更好的识别效果,参数说明可看下面这篇文章:

Tesseract OCR in Python with Pytesseract & OpenCV (nanonets.com)https://nanonets.com/blog/ocr-with-tesseract/


参考

  1. 光学字符识别 - 维基百科,自由的百科全书 (wikipedia.org)
  2. wxPython利用pytesser模块实现图片文字识别
  3. Python关于tesseract 安装及使用 - 知乎 (zhihu.com)
  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值