python提取图片中文字
一.安装tesseract-ocr
1.1tesseract-ocr下载
下载地址:Index of /tesseract (uni-mannheim.de) 或者 https://github.com/UB-Mannheim/tesseract/wiki
或
1.2完成tesseract-ocr安装,记住安装路径用于配置环境变量
1.3配置环境变量
将tesseract-ocr的安装路径添加到环境变量的系统变量(PATH)
增加一个TESSDATA_PREFIX变量名,变量值还是安装路径C:\Program Files\Tesseract-OCR\tessdata这是将语言字库文件夹添加到变量中;
1.4配置文件修改
在pytesseract库下的pytesseract.py文件中找到tesseract_cmd = 'tesseract',修改成 tesseract_cmd =r'C:\Program Files\Tesseract-OCR\tesseract.exe'保存
1.5识别效果优化
Tesseract OCR 对于不同的图像可能会有不同的识别效果,尤其是对于那些包含复杂背景、字体大小、颜色和形状等元素的图像。可以对图像进行一些预处理(如裁剪、缩放、旋转、二值化等)以提高识别准确率。同时,也可以设置不同的语言和配置选项来优化识别过程。
二.使用PIL+pytesseract进行提取
pytesseract.image_to_string
函数使用 Tesseract OCR(光学字符识别)引擎从图像中提取文本,可以将图像中的文字识别并转化为字符串形式。使用需要安装pytesseract和Tesseract OCR
1 2 3 4 5 6 7 8 | import pytesseract from PIL import Image #读取图片 image = Image. open ( "D:/autotest/13.jpg" ) # 使用 pytesseract 提取文字 text = pytesseract.image_to_string(image) # 打印提取的文字 print (text) |
三.使用cv2+pytesseract进行提取
使用需要安装pytesseract,Tesseract OCR和cv2
import cv2
import pytesseract
#打开图片
pic1=cv2.imread("D:/autotest/13.jpg",cv2.IMREAD_GRAYSCALE)
#缩放图片(裁剪、缩放、旋转、二值化等操作可以提高识别率)
pic2=cv2.resize(pic1, (2000, 2000))
#提取文字
pic3 = pytesseract.image_to_string(pic2)
#打印提取的文字
print(pic3)
四.使用EasyOCR进行文字识别
使用前需要进行安装 pip install easyocr,如果未安装检测模型,则需要先安装检测模型。
1 2 | import easycor #创建Easyocr对象<br>reader=easyocr.Reader(['en'])<br>#读取图片并提取文字<br>text=reader.readtext("D:/autotest/13.jpg")<br>print(text) |
五.pytesseract识别中文
pytesseract默认是不支持中文识别的,如果想要识别中文,需要下载相应的中文语言包。目前Tesseract-OCR官方并没有提供中文语言包,但是可以通过第三方渠道下载中文语言包,如chi_sim.traineddata。下载完成后,将chi_sim.traineddata放到Tesseract-OCR安装目录下的tessdata目录中。需要注意的是,由于Tesseract-OCR的版本不同,下载的中文语言包可能存在不兼容的情况,因此建议到官方论坛或社区查询最新、最合适的中文语言包。
5.1中文字库下载
下载地址:https://github.com/tesseract-ocr/tessdata;下载后的中文简体字库chi_sim.traineddata和 chi_sim_vert.traineddata放到安装包的tessdata文件夹下。
六.识别率优化
在白色背景色中识别黑色字体或者在黑色背景色中识别白色字体的识别率会高。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)