安装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 替代
参考