圆孔毛刺检测系统:项目概述与整体架构设计

精密制造行业的一个真实需求:圆孔内壁毛刺检测。

人工目检效率低、标准不一、容易疲劳。用机器视觉自动化检测,是刚需。

一、项目背景

在光学、半导体、医疗器件行业,圆孔内壁的毛刺直接影响产品质量。传统人工目检有三个硬伤:

  • 效率低:速度慢,跟不上批量生产

  • 主观性强:不同人标准不一样

  • 易疲劳:长时间盯着看,漏检率上升

这套系统用机器视觉替代人眼,实现自动化检测。


二、核心功能

功能模块需求描述
批量图像管理选择文件夹,自动加载常见格式图片
单张/批量检测支持单张触发或全自动批量处理
重新检测强制重新检测所有图像
毛刺检测算法自动定位圆孔并检测缺陷
评级与合格判定量化评级,自动判定合格/不合格
结果展示表格展示检测结果,图像预览
外部控制联动外部定位软件

三、MVC架构

text

┌─────────────────────────────────────────────────────────────┐
│                        MVC 架构                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────────┐    ┌─────────────┐    ┌─────────────┐      │
│  │   Model     │    │   View      │    │ Controller  │      │
│  │  数据+算法   │    │   界面展示   │    │  业务逻辑   │      │
│  └─────────────┘    └─────────────┘    └─────────────┘      │
│        │                  │                  │              │
│        ▼                  ▼                  ▼              │
│  detector.py        main_window.py      main.py             │
│  external_controller dialogs.py        batch_worker.py      │
│                                                             │
└─────────────────────────────────────────────────────────────┘

各层职责

  • Modeldetector.py(检测算法)、external_controller.py(外部控制)

  • Viewmain_window.py(主界面)、dialogs.py(配置对话框)

  • Controllermain.py(入口和事件路由)、batch_worker.py(批量任务管理)


四、模块职责

4.1 主入口(main.py)

python

import sys
import logging
from PyQt6.QtWidgets import QApplication
from main_window import MainWindow

if __name__ == '__main__':
    logging.basicConfig(
        level=logging.INFO,
        format='%(asctime)s - %(levelname)s - %(message)s',
        handlers=[
            logging.FileHandler('logs/app.log'),
            logging.StreamHandler()
        ]
    )
    
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec())

4.2 模块清单

模块职责
main.py程序入口,启动日志,创建主窗口
main_window.py主界面集成,事件响应
detector.py圆孔定位 + 毛刺检测算法
batch_worker.py多线程批量处理
external_controller.pyuiautomation封装,控制外部软件
dialogs.py参数配置对话框

五、数据流与交互流程

用户选择目录
    │
    ▼
扫描图像文件 → 刷新表格显示
    │
    ▼
触发检测(单张/批量)
    │
    ▼
Detector.detect_single_image()
    │
    ▼
结果返回 → 更新界面展示
    │
    ▼
选中表格行 → 显示原图 + 标注图
    │
    ▼
点击"发送定位" → ExternalController
    │
    ▼
查找外部软件控件 → 执行定位

关键交互点

  1. 选择目录 → 自动加载图像列表

  2. 点击检测 → 调用Detector算法 → 更新表格

  3. 选中行 → 显示对应的原图和检测结果图

  4. 发送定位 → 通过uiautomation联动外部软件


六、技术选型

技术项选择理由
编程语言Python 3.10+开发快,库多
GUI框架PyQt6控件丰富,信号槽完善
图像处理OpenCV 4.8+功能全,性能好
科学计算NumPy数组运算高效
UI自动化uiautomationWindows原生控件操作

七、文件结构

├── main.py                  # 程序入口
├── main_window.py           # 主窗口界面
├── detector.py              # 检测核心算法
├── batch_worker.py          # 批量处理线程
├── external_controller.py   # 外部软件控制
├── dialogs.py               # 参数配置对话框
├── requirements.txt         # 依赖列表
├── .venv/                   # 虚拟环境
├── logs/                    # 日志目录
├── results/                 # 检测结果保存目录
└── articles/                # 技术文档目录

八、踩坑记录(提前预警)

  1. 外部软件联动uiautomation依赖Windows系统,打包后路径问题要处理好

  2. 批量处理卡界面:用QThread做后台任务,别在主线程跑循环

  3. 日志目录不存在:启动时检查logs/目录,没有就创建

  4. 大图像加载慢:表格显示缩略图,原图按需加载


下篇预告

下一篇写图像处理核心算法——圆孔定位技术:RANSAC圆拟合、自适应阈值、毛刺检测逻辑。

如果对架构设计有不同思路,评论区聊。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在世修行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值