基于python的图片识别

这三个方法使用感受: ddddocr对验证码类图片友好度最高,假如是别的表格类的图片可能会识别不出来数据或者只有少部分数据,我是处理文档中取出的图片,主要采用了 pytesseract,easyocr相结合(分别用两个方法跑一版数据,进行合并),实际上在处理图片时,pytesseract识别的准度要比easyocr要高一点,而且文字靠近图片边界easyocr会出现文字缺失或者识别错误,例如N识别成V,在运行性能来说,pytesseract也要比easyocr高,建议使用pytesseract(仅代表个人处理这次文档的观点,实际情况因人而异)

方法1:ddddocr

验证码识别比较高:ddddocr(python版本必须要3.8以上)

注意:仅限于验证码识别,假如是文字类文档图片,内容是识别不了的

测试图片下载网址:http://146.56.204.113:19199/preview

import ddddocr
ocr = ddddocr.DdddOcr()
with open('D://下载.jpg', 'rb') as f:
	img_bytes = f.read()
res = ocr.classification(img_bytes)
print('识别出的验证码为:' + res)

识别的验证码图片:

结果(看最后一行就行):

欢迎使用ddddocr,本项目专注带动行业内卷,个人博客:wenanzhe.com
训练数据支持来源于:http://146.56.204.113:19199/preview
爬虫框架feapder可快速一键接入,快速开启爬虫之旅:https://github.com/Boris-code/feapder
谷歌reCaptcha验证码 / hCaptcha验证码 / funCaptcha验证码商业级识别接口:https://yescaptcha.com/i/NSwk7i
识别出的验证码为:OT6TTXf

方法2:pytesseract

文字识别准确率比较高,适合清晰度较高的图片:PIL结合pytesseract

同时还要安装 Tesseract-OCR应用程序,并将D:\Anaconda3\Lib\site-packages\pytesseract\pytesseract.py里的tesseract_cmd = 'tesseract.exe'修改成tesseract_cmd = r'D:\安装 Tesseract-OCR应用程序路径\tesseract.exe'

参考文章链接:python提取图片中的文字_帅帅de三叔的博客-CSDN博客_python提取图片文字

from PIL import Image
import pytesseract
path='D://文件图片//101650//image3.png'
image = Image.open(path) #打开图片
#print(image.size) #测试图片像素尺寸
text = pytesseract.image_to_string(image) #图片转字符串
print(text)

方法3:easyocr

涉及到模型下载,下载网址:Jaided AI: EasyOCR model hub

craft_mlt_25k.zip、zh_sim_g2.zip模块复制到C:\Users\EDY\.EasyOCR\model路径下

模块资源:链接:https://pan.baidu.com/s/1i7JFyrU9AF2IhXmVyz5nFQ

提取码:2uy4

注意:路径不能包含中文符号,不然会报错

AttributeError: 'NoneType' object has no attribute 'shape'

代码展示:

缺点:一串字符存在部分数据缺失问题

import easyocr
path=r'D:\ALLimage\101650\image3.png'
reader = easyocr.Reader(['en'], gpu =  False)
result = reader.readtext(path, detail = 0)
print(result)

猜你喜欢

转载自blog.csdn.net/qq_41110377/article/details/128733259