安装tesseract
mac环境下:
$ brew install tesseract
测试
$ tesseract -v tesseract 3.05.01
直接使用
$ tesseract test.png output #识别test.png的图片,把结果放到output.txt中
图片
识别结果
Hello world! 1234
python接口
安装模块
$ pip install pillow $ pip install pytesseract
代码实现
# -*- coding: utf-8 -*- from PIL import Image import pytesseract img = Image.open("tesseract_demo.png") img = img.convert("L") # 转为黑白图 ret = pytesseract.image_to_string(img) print(ret) """ Hello world! 1234 """
如果没有识别出内容,使用命令行方式识别,看下报错
如果报错 empty page, 加一些空白就可以
# -*- coding: utf-8 -*- from PIL import Image import pytesseract img = Image.open("tesseract_demo.png") # 新建一个比原图大一倍左右的白色画布,将原图贴到白色背景图中 image = Image.new("RGB", (300, 200), "white") image.paste(img, (50, 50)) # 接下来要使用新合成的图 image = image.convert("L") # 转为黑白图 ret = pytesseract.image_to_string(image) print(ret)
参考: OCR Tesseract 识别报 empty page解决办法
识别中文
需要下载中文包:
https://pan.baidu.com/s/10dP9ZJMnwX4yOVz6K4jykQ#list/path=%2F
密码 v13f
注意报错的路径,比如mac下:
/usr/local/Cellar/tesseract/3.05.01/share/tessdata/chi_sim.traineddata
把下载的文件chi_sim.traineddata 拷贝到这个目录下即可
import pytesseract import cv2 def ocr_text(image_name): img = cv2.imread(image_name) gray = cv2.cvtColor(src=img, code=cv2.COLOR_BGR2GRAY) ret, th = cv2.threshold(src=gray.copy(), thresh=236, maxval=255, type=0) result = pytesseract.image_to_string(th, lang='chi_sim') return result if __name__ == '__main__': image = "out-9-22.png" print(ocr_text(image))
识别效果还可以
cv2模块也可以用 PIL 替代
参考
Mac上tesseract-OCR的安装配置
python+pytesseract 中文识别