当前位置: 首页 > news >正文

使用paddlerocr识别固定颜色验证码

1 引言

本文使用opencv和paddlerocr识别出固定颜色的验证码,原理不解释,安装包的方法自行查找,只提供代码和思路。

  • 1 使用opencv对特定颜色区域进行提取
  • 2 使用paddlerocr识别并输出验证码

2 代码

2.1 读取图片,提取蓝色区域

from paddleocr import PaddleOCR
import os
import cv2
import numpy as np# 读取图像
image = cv2.imread('1.png')# 将图像从 BGR 转换为 HSV 色彩空间
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)# 定义蓝色的范围 (HSV),如果是其他颜色,需要修改这两个地方
lower_blue = np.array([100, 150, 0])
upper_blue = np.array([140, 255, 255])# 创建掩膜
mask = cv2.inRange(hsv, lower_blue, upper_blue)# 使用掩膜提取蓝色区域
blue_area = cv2.bitwise_and(image, image, mask=mask)

在这里插入图片描述

2.2 导入paddlerocr,提取验证码

## 导入模型,使用的是百度的paddleocr包,需要先安装
os.environ['KMP_DUPLICATE_LIB_OK'] = 'True'  # 设置允许重复加载动态链接库,若不允许,使用jupyter运行时内核会挂掉
# Paddleocr目前支持的多语言语种可以通过修改lang参数进行切换
# 例如`ch`, `en`, `fr`, `german`, `korean`, `japan`
ocr = PaddleOCR(rec_model_dir = "models/ocr",use_angle_cls=False,use_gpu=False,lang="ch", show_log=False)  # need to run only once to download and load model into memory# 显示出识别结果,详情联系 596520206
ocr_text = ocr.ocr(blue_area, cls=False)
print(ocr_text)

展示结果:

[[[[[68.0, 31.0], [155.0, 26.0], [158.0, 64.0], [71.0, 69.0]], ('DTH', 0.9372736811637878)]]]

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Spring Boot实现发QQ邮件
  • 算法day23| 93.复原IP地址、78.子集、90.子集II
  • python第二章课堂笔记
  • Maven基本使用(下)
  • Zenmap
  • Mysql Innodb存储引擎原理—链接如下
  • ARM base instruction -- csel
  • 小琳AI课堂:多模态模型的训练与应用
  • 人工智能安全治理框架导图
  • 通信工程学习:什么是FMC固定移动融合
  • 斐纳切数列考试题
  • 攻防世界--->易热
  • C#使用MQTT(二):MQTT客户端
  • 【JAVA】Tomcat性能优化、安全配置、资源控制以及运行模式超详细
  • Self Refine技术测评:利用Self Refine提高LLM的生成质量
  • HTTP 简介
  • Logstash 参考指南(目录)
  • PHP变量
  • Redux系列x:源码分析
  • Travix是如何部署应用程序到Kubernetes上的
  • windows下使用nginx调试简介
  • 阿里云Kubernetes容器服务上体验Knative
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 前端路由实现-history
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 网络应用优化——时延与带宽
  • 项目实战-Api的解决方案
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​queue --- 一个同步的队列类​
  • # Panda3d 碰撞检测系统介绍
  • #1014 : Trie树
  • #HarmonyOS:Web组件的使用
  • #include
  • #stm32整理(一)flash读写
  • (1)svelte 教程:hello world
  • (145)光线追踪距离场柔和阴影
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (数据结构)顺序表的定义
  • (转)linux下的时间函数使用
  • .bat批处理(六):替换字符串中匹配的子串
  • .CSS-hover 的解释
  • .Net - 类的介绍
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .Net接口调试与案例
  • .NET上SQLite的连接
  • .net生成的类,跨工程调用显示注释
  • .NET实现之(自动更新)
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • @Autowired多个相同类型bean装配问题
  • @Transactional 详解
  • [ solr入门 ] - 利用solrJ进行检索
  • [12] 使用 CUDA 进行图像处理
  • [autojs]autojs开关按钮的简单使用