tesseract-ocr支持多平台,针对windows,可在官方指定的地址中下载tesseract-ocr安装包下载,安装时可不关心额外的语言包,直接连续下一步安装结束,软件默认支持英文识别,其它语言可在这个网址下载对应的语言包,但这些网址通常速度不佳。
tessdata文件夹中path 中添加安装目录,并创建一个新的系统变量TESSDATA_PREFIX ,值为安装目录下的tessdata对应的目录。cmd:xxxxxxxxxxC:\Users> tesseract -vtesseract 4.00.00alpha leptonica-1.74.1 libgif 4.1.6(?) : libjpeg 8d (libjpeg-turbo 1.5.0) : libpng 1.6.20 : libtiff 4.0.6 : zlib 1.2.8 : libwebp 0.4.3 : libopenjp2 2.1.0C:\Users> tesseract --list-langsList of available languages (5):chi_simchi_traengequosd打开 cmd,输入 tesseract 目标图片 存储结果的文件名 -l 语言包名
-l 语言包名有时会出现 Warning:Invalid resolution 0 dpi. Using 70 instead,并无大碍,只是目标图片本身没给出明确的分辨率。
为方便使用,我们结合python使用该工具,首先安装对应模块:
xxxxxxxxxxpython3 -m pip install pytesseract我们对上述的python图片做识别,运行代码:
xxxxxxxxxx
import pytesseract
py=Image.open(r'./python.png') #这里是对应图片的目录,./为当前文件夹print(pytesseract.image_to_string(py,lang='eng')) #lang指定对应的语言包 #« python"结果基本是可以的。但也很明显会对额外的内容做错误的识别,这一点在图片较杂乱时尤为明显。
因此,在很多情况下需要对图片做处理,通过二值化等方式突出主要内容,而这一工作主要交给了Pillow模块处理,在python2中这一工作主要由PIL处理,但在python3中则由其分支Pillow代替,安装:
xxxxxxxxxxpython3 -m pip install pillow网上对于Pillow的操作有不少介绍,也可以通过官方的文档了解pillow各种方法和类的细节。
这里,简单地给出二值化的代码:
xxxxxxxxxxfrom PIL import Image #由于是继承PIL,因此pillow仍用PIL表示im=Image.open(r'./python.png')grey=im.convert('L')grey.save(r'./grey.png') #保存图片
xxxxxxxxxxth=Image.open(r'./grey.png')n=170 #设定的一个阈值,需要在0~256间table=[0]*n+[1]*(256-n)out=th.point(table,'1') #二值化,阈值之下黑,之上白out.show() #显示结果图像