文章目录
前言
本文简单介绍了paddleocr中使用的到的正则化。
一、代码总述&介绍
import cv2
import re
from paddleocr import PaddleOCR
# 初始化 PaddleOCR
ocr = PaddleOCR(use_angle_cls=True, lang="ch")
# 打开摄像头
cap = cv2.VideoCapture(0)
if not cap.isOpened():
print("无法打开摄像头")
exit()
try:
while True:
# 读取摄像头帧
ret, frame = cap.read()
if not ret:
print("无法获取帧,退出...")
break
# 使用 PaddleOCR 进行识别
result = ocr.ocr(frame, cls=True)
text = ""
for line in result:
for word_info in line:
text += word_info[1][0] + " "
# 定义正则表达式模式
# 快递单号:通常是数字和字母的组合,长度可能在 10 到 20 位左右
express_pattern = r'[A-Za-z0-9]{10,20}'
# 手机号:以 1 开头,后面跟 10 位数字
phone_pattern = r'1\d{10}'
# 姓名:简单假设为 2 到 4 个汉字
name_pattern = r'[\u4e00-\u9fa5]{2,4}'
# 查找匹配项
express_numbers = re.findall(express_pattern, text)
phone_numbers = re.findall(phone_pattern, text)
names = re.findall(name_pattern, text)
# 打印提取结果
print("快递单号:", express_numbers)
print("手机号:", phone_numbers)
print("姓名:", names)
# 显示帧
cv2.imshow('Camera Feed', frame)
# 按 'q' 键退出循环
if cv2.waitKey(1) &