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

基于opencv和PaddleOCR识别身份证信息

1、安装组件

pip install --upgrade paddlepaddle paddleocr

2、完整code

import cv2
import numpy as np
from paddleocr import PaddleOCR# 初始化 PaddleOCR
use_angle_cls=True, lang="ch", det_db_thresh=0.1, det_db_box_thresh=0.5)def preprocess_image(image_path):"""使用 OpenCV 对图像进行预处理:param image_path: 图像路径:return: 预处理后的图像"""# 读取图像image = cv2.imread(image_path)gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)  # 转换为灰度图像blurred = cv2.GaussianBlur(gray, (5, 5), 0)  # 高斯模糊去噪_, binary = cv2.threshold(blurred, 128, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)  # 二值化return binarydef recognize_id_card(image_path):"""识别身份证信息:param image_path: 身份证图像路径:return: 识别结果"""# 预处理图像preprocessed_image = preprocess_image(image_path)# 将预处理后的图像转换为 PaddleOCR 需要的格式img = cv2.cvtColor(preprocessed_image, cv2.COLOR_GRAY2BGR)# 使用 PaddleOCR 进行文字识别result = ocr.ocr(img, cls=True)print(result)# 提取识别结果for line in result:for elem in line:print(elem[-1][0])  # 打印识别的文本内容# 示例:识别一张身份证图像
recognize_id_card("card.jpg")

3、调整 PaddleOCR 参数 

        如果某些图像无法识别,可以尝试调整 PaddleOCR 的参数,例如检测阈值、识别模型等。

ocr = PaddleOCR(use_angle_cls=True, lang="ch", det_db_thresh=0.3, det_db_box_thresh=0.6)

说明:

        1、det_db_thresh

         • 作用:文字检测的阈值。该参数控制检测算法的灵敏度,值越低,检测到的文字区域越多,但误检率也越高。

        • 默认值:  0.3

         • 范围:  0.0   到   1.0  

        • 建议:如果检测到的文字区域太少,可以尝试降低该值;如果检测到的区域太多且包含大量误检,可以提高该值。

        2、 det_db_box_thresh  

        • 作用:文字区域的过滤阈值。该参数用于过滤掉低置信度的检测结果,值越高,保留的检测结果越少。

        • 默认值:  0.6  

        • 范围:  0.0   到   1.0  

        • 建议:如果检测到的文字区域中有大量误检,可以提高该值;如果检测到的区域太少,可以降低该值。

相关文章:

  • Spring Boot 整合 JavaFX 核心知识点详解
  • 科学视角下的养生新范式——高压氧舱:重塑健康边界的氧护革命
  • 使用 Electron 打包可执行文件和资源:完整实战教程
  • Prompt 攻击与防范:大语言模型安全的新挑战
  • 文字、语音、图片、视频四个模态两两之间(共16种转换方向)的生成技术及理论基础的详细说明及表格总结
  • 【2025面试Java常问八股之redis】zset数据结构的实现,跳表和B+树的对比
  • 基于大模型的血栓性外痔全流程风险预测与治疗管理研究报告
  • Linux系统下docker 安装 redis
  • hadoop与spark的区别和联系
  • 蚂蚁全媒体总编刘鑫炜再添新职,出任共工新闻社新媒体研究院院长
  • n8n 中文系列教程_05.如何在本机部署/安装 n8n(详细图文教程)
  • Java 服务器端 jar 包内 class 文件替换与配置文件修改高级技术指南
  • 在 Spring Boot 项目中怎么识别和优化慢 SQL ?
  • 商场app测试项目
  • Unity使用Rider的常用快捷键
  • win11修改文件后缀名
  • 鸿蒙系统ArkTs代码复习1
  • 10天学会嵌入式技术之51单片机-day-4
  • C# .NET如何自动实现依赖注入(DI)
  • 【前端样式】用 aspect-ratio 实现等比容器:视频封面与图片占位的终极解决方案
  • 国家新闻出版署:4月共118款国产网络游戏获批
  • 大气科学家、北京大学副教授李成才逝世,终年56岁
  • 北美票房|《罪人》成首部观众评分为A级的恐怖片
  • 中方决定对在涉港问题上表现恶劣的美国国会议员、官员和非政府组织负责人实施制裁
  • 分离19年后:陈杨梅首度露面,父亲亲手喂棉花糖给女儿吃
  • “75后”新任四川泸州市委副书记张伟,已任市政府党组书记