首页 > 编程语言 >python - ddddocr验证码识别

python - ddddocr验证码识别

时间:2023-03-13 21:24:51浏览次数:46  
标签:target python bytes det 验证码 ddddocr cv2 img2

1. ddddocr安装

建议使用国内镜像安装

pip3 install ddddocr -i https://pypi.tuna.tsinghua.edu.cn/simple

2. 图片验证码

import ddddocr
ocr = ddddocr.DdddOcr(show_ad=False) # 关闭广告
with open('captcha.png', 'rb') as f:
    img_bytes = f.read()
res = ocr.classification(img_bytes)
print(res)

image
运行结果

hqymw

3. 滑块验证码

import ddddocr
det = ddddocr.DdddOcr(det=False,ocr=False,show_ad=False)
with open('target.png', 'rb') as f:
    target_bytes = f.read()
with open('background.png', 'rb') as f:
    background_bytes = f.read()
res = det.slide_match(target_bytes, background_bytes, simple_target=True)
print(res)

image
image
运行结果

{'target_y': 0, 'target': [130, 0, 193, 155]}

4. 中文识别

需要额外安装一个库

pip3 install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
import ddddocr
import cv2

# 截图
img1 = cv2.imread('img1.jpg')
height = len(img1)
width = len(img1[0])
img2 = img1[0:min(width,height),0:min(width,height)]
cv2.imwrite('img2.jpg',img2)

det = ddddocr.DdddOcr(det=True,show_ad=False)
with open('img2.jpg', 'rb') as f:
    img2_bytes = f.read()
poses = det.detection(img2_bytes)
img2 = cv2.imread('img2.jpg')

for box in poses:
    x1, y1, x2, y2 = box
    img2 = cv2.rectangle(img2, (x1, y1), (x2, y2), color=(0,0,255), thickness=2)

cv2.imwrite('result.jpg',img2)

运行结果
image
image
image

标签:target,python,bytes,det,验证码,ddddocr,cv2,img2
From: https://www.cnblogs.com/wstong2052/p/17212716.html

相关文章

  • python数据分析
    importmatplotlib.pyplotaspltimportpandasaspddatafile='air_data.csv'resultfile='explore.csv'data=pd.read_csv(datafile,encoding='utf-8')explore=da......
  • python中的文件处理模块
    4种读法:如果文件很小,read()一次性读取最方便;如果不能确定文件大小,反复调用read(size)比较保险;如果是配置文件,调用readlines()最方便:#read():将文件中内容全部取出来#re......
  • 3.13python笔记
    1.print(str[0:-1])如上图所示,str[0:-1]为切片,意思是从前面开始截取到后面-1为止,所以输出第一个到倒数第二个的所有字符str="abcdef"print(str[0:-1])输出:abcde1232.pr......
  • Python字典生成式
    一、字典生成式print({i:i**2foriinrange(10)})输出{0:0,1:1,2:4,3:9,4:16,5:25,6:36,7:49,8:64,9:81}二、zip()方法keys=['name','age......
  • List comprehensions in Python
    Reprintedfrom:note.nkmk.me-ListcomprehensionsinPythonInPython,youcancreateanewlistusinglistcomprehensions.It'ssimplerthanusingtheforloop......
  • python中os模块
    1.os.name   #  获取操作系统类型,如果是posix,说明系统是Linux、Unix或MacOSX,如果是nt,就是Windows系统2.os.uname #  要获取详细的系统信息,可以调用uname()......
  • python85 路飞项目 文件存储、搜索导航栏、搜索接口、搜索页面、支付宝支付介绍、支
    文件存储#视频文件,存储到某个位置,如果放在自己服务器上放在项目的media文件夹服务器上线后,用户既要访问接口,又要看视频,都是一个域名和端口分开:文件单......
  • Python Yolo V8 训练自己的数据集
    前期准备工作需要使用到的库,需要训练的素材一份图片或者视频importultralytics#YoloV8本体importlableimg#图片标注工具接着新建一份工作目录如下---data......
  • python编程初体验1
    实验1源代码:1#实验123#task1_1.py45#print输出的几种方法6#用法1输出单个字符串或单个变量7print('hey,u')89#用法2:用于输出多个数据项,用逗......
  • 【ChatGPT解答】python 如何判断某个方法是继承于哪个父类
    ME:python如何判断某个方法是继承于哪个父类?给个能直接用的示例,能够自动遍历多层父类GPT:在Python中,可以通过使用内置函数inspect.getmro()来获取一个类的方法解......