Python+Tesseract实现图片文字识别
2016-07-27 本文已影响12584人
一个不知死活的胖子
导语
图片文字识别也是有点意思哈,苦于现在用Python实现图片中文识别的方法很有限,不知死活的胖子打算记录一下自己挥泪的实现过程……
1. 工具准备
笔者使用的是Tesseract,必须要好好感谢Google为人类各方面生活品质提升所做出的努力与贡献!(鼓掌!!)Tesseract是一个Google支持的开源ocr项目,用于识别图片中文字,各国文字任卿选啊哈哈哈,详细安装教程及其使用方法可以戳这里(Windows环境记得将tesseract.exe目录添加进系统环境变量,方便Python调用)。使用Tesseract ocr有两种方式:动态库方式 libtesseract和执行程序方式 tesseract.exe,笔者使用的是第二个方式,也方便Python调用。Tesseract其他中文介绍可以参考Python下Tesseract Ocr引擎及安装介绍。
2. 图片文字识别
由于tesseract.exe是直接用terminal调用的,所以这里使用到了os.popen用于运行terminal命令。
import os
def getresults(resultFolder, imgFolder):
"""
Parameters
----------
resultFolder: results directory
imgFolder: image directory
"""
# Windows
# cmd = 'cmd.exe /k tesseract.exe ' + img + 'result -l chi_sim+eng'
# OS X
# cmd = 'tesseract ' + img + ' result -l chi_sim'
imgList = os.listdir(imgFolder)
os.chdir(imgFolder)
for i in range(1, len(imgList)):
resultFile = ' %sresult-%s' % (resultFolder, imgList[i].split('.')[0])
cmd = 'tesseract ' + imgList[i] + resultFile + ' -l chi_sim'
os.popen(cmd)
[一定要特别mark一下!][null-link]
在Windows环境下调用terminal对tesseract的命令时,tesseract
后一定要加.exe
!要加.exe
!要加.exe
!例如:cmd.exe /k tesseract.exe testImg.jpg result -l chi_sim+eng
不知死活的笔者之前在网上没找到对于该问题的解决方法,可费了老大劲……
[null-link]: chrome://not-a-link
3. 其他
在笔者摸索使用Python处理图片时,发现一个非常好的包:opencv,等之后找时间试试哈哈哈哈……