← 返回项目课程项目 · 2024 · 已完成

独立完成

智能图像处理工具集

PyQt5 桌面应用集成四大视觉功能:二维码识别、车牌识别、人脸与表情检测、基于 ORB + RANSAC 的全景图像拼接。

PyQt5OpenCVpyzbarHaar 级联分类器ORB / FLANN / RANSACOCR 云服务 API

背景

《智能图像处理》课程大作业,要求做一个综合性的图像处理桌面应用。最终交付了一个基于 PyQt5 的多功能工具集:二维码识别、车牌识别、人脸与表情检测、图像拼接四大模块,支持图片、视频与摄像头实时三种输入方式。

问题定义

课程作业容易做成“四个 demo 放进四个窗口”。我希望它是一个统一的工具:同一套文件选择与摄像头管理逻辑服务所有模块,每个模块都能处理静态图、视频文件和实时画面三种输入,结果可以导出保存。

方案

二维码识别。pyzbar 解码灰度图,检测到的二维码用凸包描边标注;支持多码同屏——每个码位置生成一个可点击按钮,直接打开对应链接。视频与摄像头模式下用定时器控制帧率,识别成功自动停帧展示。

车牌识别。调用云端 OCR 车牌识别接口,返回车牌位置后裁剪出车牌区域单独展示,同时显示号码与颜色,识别结果可导出为文本文件。

人脸与表情检测。Haar 级联分类器检测人脸,在人脸上半部检测眼睛、下半部检测微笑,分别用不同颜色矩形框标注。检测逻辑按人脸区域裁剪 ROI,减少误检。

图像拼接。先对两张图做柱面投影校正畸变,ORB 提取特征点与描述符,FLANN 快速匹配并筛选优质匹配点,RANSAC 估计单应性矩阵,透视变换对齐后在重叠区域做加权融合,输出无缝全景图。

我的角色

独立完成界面设计、四个模块的算法实现与三种输入方式的统一调度。

结果

四大功能均稳定可用,摄像头实时模式下帧率与识别节奏可控,拼接模块在多数实拍场景下能得到自然过渡的全景结果。

复盘

这是第一个真正意义上的“桌面软件”,最大的收获是工程组织方式:输入源管理、定时器与 UI 状态同步这些琐碎问题,决定了软件是“能演示”还是“能用”。特征匹配 + RANSAC 这套经典管线也让我对后来 YOLO 时代的端到端方法有了更清楚的对比认知。