写在前面:
1、依赖工具 tesseract。
下载好后需要配置环境变量,将 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 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