python识别图片文字_pytesseract识别图片上的文字

  • Post author:
  • Post category:python


pytesseract是tesseract对python的一个接口,裹着tesseract的内核pytesseract为python程序加持了OCR的功能。pytesseract能识别的图片类型(jpeg、png、gif、bmp、tiff……)比直接用tesseract命令行识别的类型(jpeg、png、tiff和z)更多,而且可以将识别出来的内容直接保存到字符串里,tesseract是保存到文本文件里。

在python程序中用pytesseract做图像识别,首先要安装第三方模块pytesseract,安装完毕后在程序中引进。除此外还要安装和引进pillow模块,用来打开图片文件生成图片对象:

from PIL import Image
import pytesseract

Windows上如果搜索路径(PATH)里没有tesseract 的路径,可以在程序中特别指定tesseract可执行文件的位置:

pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files (x86)\Tesseract-OCR\tesseract'

Mac上若是用brew安装的tesseract,在终端运行命令:

brew list tesseract

可以得到tesseract的安装信息。

这里在Mac上没有在python程序中特别指定pytesseract的安装路径。安装完tesseract后,在终端运行tesseract命令行做了图片文件识别,已经确认过可以找得到tesseract。

将图片上的文字识别成字符串用函数pytesseract.image_to_string():

print(pytesseract.image_to_string(Image.open('图片所在的路径+文件名')))

Image.open(图片文件)打开图片文件、生成图片对象。

指定要识别的语言(前提是语言包已经拷贝到tessdata目录下,用Tesseract命令行识别图片文字这一节有语言包下载和安装的详细介绍可参见百宝箱tesseract的xiang):

print(pytesseract.image_to_string(Image.open('example.jpg'), lang='chi_sim'))		# 指定图片上要识别的内容是简体中文

如果出现tessdata的错误,比如”Error open data file……”,则在函数中明确指出字库文件的位置:

image = Image.open('example.jpg')
tessdata_dir_config = r'--tessdata-dir "C:\Program Files (x86)\Tesseract-OCR\tessdata"'
# 用自己的字库文件夹替换掉C:\Program Files (x86)\Tesseract-OCR\tessdata

str = pytesseract.image_to_string(image, lang='chi_sim', config=tessdata_dir_config)
# 指定识别的语言和字库位置,识别结果保存到str中


95f5f006c0b828c6ee3ea9a8b90bdf10.png

6057862ea8b8afe01c2d1ecec13bdccd.png

前段时间没上来,错过一些留言,见谅!邮件不会被删除,会尽量回复,邮箱地址:pythonabc@mail.com,多谢!



版权声明:本文为weixin_39968820原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。