写在前面:
1、依赖工具 tesseract。
Tesseract的Windows安装包下载地址为:
http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe
中文包下载地址:
https://github.com/tesseract-ocr/tessdata/find/master/chi_sim.traineddata
下载好后需要配置环境变量,将 C:\Program Files (x86)\Tesseract-OCR
和 C:\Program Files (x86)\Tesseract-OCR\tessdata
两个路径配置到环境变量中去即可使用
只使用工具进行文字识别的方式 :
tesseract E://figures/other/poems.jpg E://figures/other/poems.txt
命令行中执行上述命令即可将图片识别为文字并保存到 poems.txt 文件中
如果要识别中文,需要将下载好的中文包放到C:\Program Files (x86)\Tesseract-OCR\tessdata
路径下,然后执行命令:
tesseract E://figures/other/timg.jpg E://figures/other/timg.txt -l chi_sim
2、使用python库
pip install Pillow # 一个图片识别库
pip install pytesseract
如果已经配置过tesseract
的本地环境变量则无需再额外配置,一行代码即可
注意: 为了使环境变量生效,需要关闭cmd窗口或是关闭pycharm等ide重新启动
text = pytesseract.image_to_string(Image.open("test.png"),lang='chi_sim')
因为我是做手游测试的,实际测试下来效果并不十分好,对图片进行灰度、二化值处理后稍微好一点点。这里贴一下对应的写法
from PIL import Image
import pytesseract
# 识别图片中的文字。对图片进行灰度、二化值处理
def get_picture_str(self, picturePath):
## 图片灰度处理
picture = Image.open(picturePath).convert('L')
## 二值化,采用阈值分割法,threshold为分割点
threshold = 200
table = []
for j in range(256):
if j < threshold:
table.append(0)
else:
table.append(1)
newPicture = picture.point(table, '1')
## 保存的时候调整屏幕分辨率为300,有利于 tesseract 识别
newPicture.save(picturePath, dpi=(300.0,300.0))
## 识别
text=pytesseract.image_to_string(Image.open(picturePath) ,lang='chi_sim')
return text
网友评论