【Python】ddddoc进行OCR识别和目标检测 ——识别验证码和滑块(安装部署+测试代码注释详细)

news2024/9/22 7:27:02

目录

    • 安装部署
      • gitee已经上传完整项目
      • requiremen.txt
      • 插件作者更新地址
    • 项目结构
    • 第一部分 OCR识别部分
    • 第二部分 目标检测部分
    • 总结


欢迎关注 『Python』 系列,持续更新中
欢迎关注 『Python』 系列,持续更新中

安装部署

gitee已经上传完整项目

在这里插入图片描述

requiremen.txt

coloredlogs==15.0.1
flatbuffers==23.3.3
humanfriendly==10.0
mpmath==1.3.0
numpy==1.24.2
onnxruntime==1.14.1
opencv-python==4.7.0.72
packaging==23.0
Pillow==9.5.0
protobuf==4.22.1
pyreadline3==3.4.1
sympy==1.11.1

插件作者更新地址

作者官方更新地址,但是requirement.txt有点问题,最好用我打包好的解压即用,但是后续获取项目更新用作者的。

https://github.com/sml2h3/ddddocr

项目结构

  • 你的项目
    • ddddocr(存放插件文件)
    • test_pic(存放验证码测试图片)
    • venv(如果你要配置虚拟环境的话)
    • requirements.txt(venv 安装第三方库时用到)
    • 你的测试代码.py(import ddddocr 调用方法)

第一部分 OCR识别部分

# @Time    : 2023/4/8 22:14
# @Author  : 南黎
import ddddocr

#1.初始化一个实例,配置识别模式默认为OCR识别
ocr = ddddocr.DdddOcr()

#2.读取图片
with open("test_pic/OCR_yzm.png", 'rb') as f:
    image = f.read()

#3.给ocr实例传入image图片进行识别,得到ocr内容
ocr_result = ocr.classification(image)
print(ocr_result)#iepv
  • 验证码
    在这里插入图片描述
  • 识别结果
    在这里插入图片描述

第二部分 目标检测部分

# @Time    : 2023/4/9 8:17
# @Author  : 南黎
import ddddocr
import cv2

#1.初始化一个实例,配置识别模式为目标检测
det = ddddocr.DdddOcr(det=True)

#2.读取图片
file_path= "test_pic/ob_yzm.png"#图片路径
result_file_path= "test_pic/result_ob_yzm.png"#保存的结果图片的路径
with open(file_path, 'rb') as f:
    image = f.read()

#3.给det实例传入image图片进行识别
result_poses = det.detection(image)
#打印得到的识别结果,复合列表中表示了每一个框四个顶点的x,y坐标
#[[3, 15, 34, 46], [204, 124, 234, 155], [67, 32, 96, 62], [113, 89, 143, 118], [184, 71, 213, 100], [68, 127, 98, 156], [153, 128, 185, 157]]
print(result_poses)

#4.读取cv2图片对象im
image_cv2 = cv2.imread(file_path)#读取图片路径,但是注意不能带有中文

#5.绘制带有瞄框的cv2图片
for box in result_poses:
    x1, y1, x2, y2 = box
    im = cv2.rectangle(image_cv2, (x1, y1), (x2, y2), color=(0, 0, 255), thickness=2)

#6.把绘制的图片输出持久化保存
cv2.imwrite(result_file_path, image_cv2)
  • 文字验证码
    在这里插入图片描述
  • 识别结果
    在这里插入图片描述
  • 瞄框内容
    在这里插入图片描述
  • 滑块验证码
    在这里插入图片描述
  • 滑块识别结果
    在这里插入图片描述

总结

大家喜欢的话,给个👍,点个关注!继续跟大家分享敲代码过程中遇到的问题!

版权声明:

发现你走远了@mzh原创作品,转载必须标注原文链接

Copyright 2022 mzh

Crated:2022-1-10

欢迎关注 『Python』 系列,持续更新中
欢迎关注 『Python』 系列,持续更新中
【Python安装第三方库一行命令永久提高速度】
【使用PyInstaller打包Python文件】
【更多内容敬请期待】


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/459036.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图片对象列表查询与展示(vue+springboot+elementUI)

本文描述场景为 展示:后端从数据库中查询图片对象列表,返回前端展示 多图片展示 先看一下后端表实体 import com.zpmc.common.domain.BaseEntity; import io.swagger.annotations.ApiModel; import lombok.*;import javax.persistence.*; import java.…

8086汇编之乘法指令MUL

2023年4月22日,周六晚上。 今天写汇编作业的时候,碰到了MUL指令,于是把学习到的MUL指令知识记录下来,也可以通过写这篇博客彻底理清MUL指令。 当被乘数和乘数都是8位时: 怎么判断被乘数和乘数是不是8位的&#xff1f…

操作系统之认识进程

目录 什么是进程 进程的状态和转换 进程控制 进程通信 什么是进程 在电脑的任务管理器中,能看到电脑当前运行着的所有进程 那到底什么是进程呢?和我们所看所写的那些程序有什么区别? 操作系统是如何区分这些进程的呢? 那就需要…

银河麒麟(桌面版和服务器版)之远程桌面安装

一、前言 在信创方案中经常介绍支持麒麟系统,实际上麒麟分为银河麒麟和中标麒麟,银河麒麟又分为服务器版和桌面版,服务器器版一般用于应用系统部署,桌面版一般用于日常办公。银河麒麟操作系统作为国产操作系统,是目前国…

java定时任务schedule

在 Java中,可以使用定时任务(schedule)来实现定时任务。这种定时任务能够根据用户的需求进行时间的控制,让用户可以自由设定每一个任务的开始时间和结束时间。 下面来介绍如何使用 java中的定时任务来实现定时任务。 首先需要在配…

# 将pg日志导入pg数据库的几种方法

将pg日志导入pg数据库的几种方法 文章目录 将pg日志导入pg数据库的几种方法1 方法1:官方方法(fiel_fdw)1.1 创建file_fdw数据源(在此之前需要安装pg的file_fdw扩展)1.2 创建外部表并导入数据 2 方法2:用csv…

会议论文与期刊论文的写作差异

AI领域的会议论文和期刊论文在撰写方法上存在一定的差异,读者需要理解这些差异,才能做到有的放矢,提高论文的命中率。如果按照会议论文的风格来写期刊论文,或者按照期刊论文的风格来写会议论文,论文命中的概率将大大降…

服务(第十三篇)lvs(负载均衡器)+nginx(反向代理)+tomcat(后端服务器)+nfs共享

准备6台机器: 192.168.169.10 lvs负载均衡器 192.168.169.20、192.168.169.30 nginx反向代理 192.168.169.40(tomcat多实例)192.168.169.50(tomcat) 19.168.169.60(nfs共享) 实验没啥好说的…

新建项目提交到git指定仓库

新建的项目如何上传到git远程仓库: 1:首先进入需要上传的文件夹,鼠标右键点击Git Bash Here 2:输入git init,初始化git相关配置文件 git init3:输入git remote add origin 你的远程仓库地址,…

收废品小程序的推广策略与实践

随着互联网和移动设备的普及,各种小程序逐渐成为了人们生活中不可或缺的一部分。在这样的背景下,开发一个收废品小程序是一个具有巨大潜力的创意。本文将介绍如何开发一个收废品小程序,并分享一些推广策略和实践经验。 开发一个收废品小程序…

推荐好用的数据库软件sql studio

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言免费功能强大支持数据导入和导出和navicat功能相同 一、sql studio是什么?二、使用步骤1.下载软件2. window版本3.linux 版本配置方式3.如何使用sql…

论文浅尝 | 基于交互模态融合的多模态知识图谱补全

笔记整理:张溢驰,浙江大学硕士,研究方向为多模态知识图谱 链接:https://arxiv.org/abs/2303.10816 动机 多模态知识图谱补全需要将多种模态的信息(如图像和文本)融入到实体的结构表示中,以此来实…

OpenAI ChatGPT 能取代多少程序员的工作?导致失业吗?

阅读原文:https://bysocket.com/openai-chatgpt-vs-developer/ ChatGPT 能取代多少程序员的工作?导致我们程序员失业吗?这是一个很好的话题,我这里分享下: 一、ChatGPT 是什么?有什么作用 ChatGPT是一种…

操作系统课堂笔记

第一章概述 操作系统(Operating System, OS)是计算机系统中最重要的系统软件,它统一管理计算机系统的硬件资源与信息资源,控制与调度上层软件的执行并为其提供易于使用的接口。 1.1计算机系统 操作系统在计算机系统中的地位&…

Java学习-MySQL-索引

Java学习-MySQL-索引 索引分类 索引(Index)是帮助MySQL高效获取数据的数据结构。 1.主键索引(Primary Key),唯一标识,不可重复,并且只能有一个字段可以作为主键。 2.唯一索引(Uniq…

地热井监测控制系统解决方案

概述 地热井监测控制系统主要是对地热井采水和回灌进行流量、温度、水位(压力)等参数的实时监测,对地热站现场环境进行实时视频监控。地热井现场和取水井、回灌井安装监测装置,通过无线传输设备将数据实时传输至自然资源局已建中…

【Leetcode -141.环形链表 -2.两数相加】

Leetcode Leetcode -141.环形链表Leetcode -2.两数相加 Leetcode -141.环形链表 题目:给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给…

第二届易派客工业品展圆满落幕 3天超7万人次观展

4月15日,第二届易派客工业品展览会在苏州国际博览中心成功闭幕,展会期间共7.4万人次观展。展会以“绿色•智造•融通•赋能”为主题,为参展企业衔接供需、共享商机、共促发展提供平台,推动工业企业数字化转型、致力供应链优化升级…

AntdesignVue 局部全屏后Message、Select 、Modal、Date等组件不显示问题解决方案(最终版)

1、对this.$message.....这种的消息提示组件解决方案如下 在main.js中全局配置消息提示 //单独引用需修改的元素 import { message } from ant-design-vue message.config({maxCount: 1,getContainer:() > document.getElementById(showBigModal) || document.body //父组件…

责任链设计模式知多少

目录 目标 概述 实现 单向设计模式 双向设计模式 目标 熟悉责任链设计模式,了解责任链设计模式的使用场景、具体实现,单链责任链设计模式和双链责任链设计模式的区别。 概述 一、行为设计模式 行为设计模式是设计模式的一种类型。该类型的设计模…