win10(64位)下安装tesseract和tesserocr出现问题解决办法以及图片文字识别


tesserocr是Python的一个OCR识别库,但其实是对tesseract做的一层Python API封装,所以它的核心是tesseract。因此,在安装tesseroct之前,我们必须安装tesseract。


  • tesseract安装

win10,首先下载tesseract软件(https://digi.bib.uni-mannheim.de/tesseract/),打开网站如下图

                                                     

其中文件中带有dev的为开发版本,不带dev的为稳定版本,可以选择不带dev版本的,例如我下载的是tesseract-ocr-setup-3.05.02-20180621.exe。

下载完成后双击安装,一路点击NEXT,注意下边图形勾选就行了

                                                       

安装时间比较长,耐心等待。安装好了之后,需要将其路径加入两个环境变量,一个是path,一个是TESSDATA_PREFIX。如下图

                              

                                         

然后cmd打开命令行,输入

>>>tesseract -v

这样就完成tesseract安装了。


  • tesserocr安装

自己安装了Anaconda3-5.3.0,可以直接用pip安装,但是用pip3 install tesserocr时,出现以下如下图情况。

当我按照要求去官网下载了VC++14.0后,然后又输入pip3 install tesserocr,又出现同样错误。然后去tesserocr官网(https://github.com/simonflueckiger/tesserocr-windows_build/releases)根据自己的系统下载了tesserocr-2.2.2-cp36-cp36m-win_amd64.whl(目前官网还没有py37的tesserocr的whl,只更新到py36)并将其存在了用户的文件目录下,如下图所示。(有下载过4.0.0的,没有成功,之后就下载了3.5.1的)

再次输入pip3 install tesserocr-2.2.2-cp36-cp36m-win_amd64.whl(install后面是tesserocr安装路径,cp表示py是3.6的,win_amd64表示64位),发现还是不对,因为自己的Anaconda3-5.3.0的python版本是3.7的,于是又采取的py降级降到3.6。代码如下所示

>>>conda update conda  /*等待完成更新,然后输入以下命令*/
>>>conda creat -n py36 python=3.6 anaconda   /*等待更新完*/
>>>Proceed ([y]/n)?   /*如果降级遇到这个情况,后面输入y表示覆盖之前py版本,n表示不覆盖*/
>>>activate py36    /*安装好之后,如若使用py36,激活py36就行,如下所示*/

C:\Users\斌玲>activate py36

(py36) C:\Users\斌玲>      /*出现上述两行就表示降级完成了*/

然后命令行输入pip install C:\Users\斌玲\tesserocr-2.2.2-cp36-cp36m-win_amd64.whl,安装成功了,如下图(其间,自己对pip进行了一次升级,代码:python -m pip install --upgrade pip )

中间如果不成功的话,报错 tesserocr-2.2.2-cp36-cp36m-win_amd64.whl is not a supported wheel on this platform的话,可以尝试在python里输入:

然后根据要求其上文件名改就是了。


  • 图片文字识别

1.tesserocr测试

文字png下载网站:https://raw.githubusercontent.com/Python3WebSpider/TestTess/master/image.png(注意,用Python代码实现的文字识别需要将该图片存到用户目录下,不然会出现路径错误),python代码如下(鉴于tesserocr是在py36下装的,所以得在Anaconda Prompt下激活py36完成此任务)

2.tesserart测试

输入tesseract image.png result result -l eng && type result.txt,结果如第一张图(调用了tesseract命令,其中第一个参数image.png为图片名称,第二个result为结果保存的目标文件,-l指定使用的语言包,在此使用eng,最后,用type命令将结果输出,linux用cat将结果输出,还有,如果想看自己下载的tesseract包含哪几种语言的话,可以用代码如第二张图片)

发布了16 篇原创文章 · 获赞 4 · 访问量 2297

猜你喜欢

转载自blog.csdn.net/qq_40078031/article/details/83048696