Python批量识别图片中的文字并保存到txt文档中

Python OCR工具pytesseract,之前是惠普的产品,被Google收了之后就给开源了。

1、需要下载并安装Google Tesseract,下载地址看图片上有,要下载4.0.0版本的
2、下载打开后双击打开,选择安装位置,然后一路下一步即可安装完成
3、安装完成需要设置一下环境变量,设置环境变量需自行百度,非常简单
4、安装所需要的Python模块,直接执行以下命令
pip install pillow==9.2.0
pip install pytesseract==0.3.9
5、最后还需要一个语言包文件:chi_sim.traineddata,这个文件需才能下,有需要的找我可以发给他

注:我的Python版本是3.7,3.8也是可以的,但3.9及以上会出问题,建议你也用3.7

Tesseract下载地址:https://digi.bib.uni-mannheim.de/tesseract/

代码如下:

# encoding=utf8

'''
Python批量识别图片中的文字并保存到txt文档中
'''

# 导入包
from PIL import Image
import string,re,os
import pytesseract


# 定义方法
def imgtostr(imgpath):
	'''识别图片中的所有文字'''
	image = Image.open(imgpath)
	text = pytesseract.image_to_string(image, 
	lang = 'chi_sim') # 使用简体中文解析图片
	return text.replace("\n", "") # 去掉换行


def writefile(txtpath,strstr):
	'''将文字累加并写入txt文档'''
	with open(txtpath, "a", encoding= "utf-8") as f:
		f.write(strstr) # 写入文件
		f.write("\n\n")


if __name__ == '__main__':

	# 存放待识别图片的目录,支持所有图片格式
	imgpath = r'D:\Test\image'

	# 识别结果保存的txt文件路径
	txtpath = r'D:\Test\word.txt'

	# 开始执行
	for a, b, filenames in os.walk(imgpath):
		toltal = 0
		for fe in filenames:
			grpaimg = imgpath + '/' + fe
			textddd = imgtostr(grpaimg)
			writefile(txtpath, grpaimg+":\n"+textddd)
			print(grpaimg, textddd, end="\n\n")

你可能感兴趣的:(Python,python,开发语言)