安装tesseract

mac环境下:

$ brew install tesseract

测试

$ tesseract -v
tesseract 3.05.01

直接使用

$ tesseract test.png output #识别test.png的图片,把结果放到output.txt中

图片

Python爬虫:tesseract识别图片验证码_命令行

识别结果

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 替代


参考


  1. ​Mac上tesseract-OCR的安装配置​
  2. ​python+pytesseract 中文识别​