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

基于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  

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

http://www.xdnf.cn/news/972.html

相关文章:

  • RIP动态路由,实现两台PC互通三个路由器,两台电脑
  • 成功案例|TRAP1 与 CAMSAP3:早期子宫内膜癌预后的新 “风向标”
  • Federated Feature Augmentation and Alignment
  • Linux卸载删除gitlab
  • Vmware esxi 给现有磁盘增加空间后并扩展系统里磁盘空间
  • 文件内容课堂总结
  • Webpack 插件开发
  • MYDB仿MySQL手写数据库项目总结
  • UML 状态图:解锁电子图书馆管理系统的高效设计
  • 经典文献阅读之--KISS-Matcher(快速且稳健的点云注册)
  • C语言中联合体(Union)和结构体(Struct)的嵌套用法
  • VS Code + GitHub:高效开发工作流指南
  • 前端vue监听 -watch
  • 基于Redis实现高并发抢券系统的数据同步方案详解
  • Redis 有序集合(Sorted Set)
  • Spark,序列化反序列化
  • Linux高级IO
  • 【Python爬虫实战篇】--爬取豆瓣电影信息(静态网页)
  • RS232 串行通信:C++ 实现指南
  • 微信小程序 == 倒计时验证码组件 (countdown-verify)
  • 5V 1A充电标准的由来与技术演进——从USB诞生到智能手机时代的电力革命
  • I/O复用函数的使用——select
  • Linux系统管理与编程13:基于CentOS7.x的LAMP环境部署
  • BGP路由控制实验
  • Linux论坛安装
  • vite安装及使用
  • arkTs:UIAbility 组件的生命周期
  • Linux——系统安全及应用
  • 内网穿透实践:cpolar快速入门教程
  • 大模型学习笔记 day01 提示工程入门1.One-shot Few-shot提示学习法