方法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)