摘要:针对小型零部件尺寸测量中图像噪声干扰和边缘定位精度不足的问题,本文提出并实现了一种基于自适应混合滤波与亚像素边缘检测的视觉测量系统。

项目概览

项目简介

在图像预处理阶段,系统通过计算 5×5 邻域的均值、标准差和相对局部中位数偏差,逐像素评估椒盐噪声和高斯噪声的强度。对于极值像素且中位偏差大的区域赋予较高的中值滤波权重;根据局部标准差确定高斯滤波权重;对结构强度高的区域提高原图权重以保护真实边缘。三个权重逐像素归一化后动态融合,实现了自适应的混合滤波效果。

在边缘检测阶段,采用双三次插值将图像放大 2-4 倍,在更高分辨率下进行边缘检测。使用 Scharr 算子计算八个 45° 间隔方向的梯度,取最强方向并折叠为四方向。基于 Devernay 方法,在梯度法线两侧进行双线性采样,对三个梯度幅值进行抛物线拟合,得到边缘峰值相对整数像素中心的亚像素偏移量。采用 Otsu 算法自动生成高阈值,并派生中、低阈值,实现三级边缘连接:强边缘先连接中等边缘,再连接弱边缘,最后剔除过短连通域。该方法有效去除噪声边缘的同时保留了完整的零部件轮廓。

实验采用含椒盐噪声和高斯噪声的合成图像以及实际工业零部件图像进行测试。结果表明,在信噪比较低的情况下,自适应混合滤波相比单一滤波器能够更好地平衡噪声抑制和边缘保护;亚像素边缘检测的定位精度达到 0.1-0.3 像素,相比传统 Canny 算法提高了 3-5 倍;在标定正确的前提下,尺寸测量精度可达 0.01mm,满足工业现场的实际需求。

系统集成了完整的测量功能模块:通过两点标定建立像素-毫米映射关系;自动计算最小外接矩形的长度和宽度、最小包围圆直径、轮廓周长和面积;支持手动两点测距。图形界面采用 PyQt5 开发,实现了图像采集、参数配置、实时预览、测量分析和结果导出的完整工作流程。相机接入层支持普通 USB 相机和海康 MVS 工业相机,通过统一接口实现多种相机的灵活切换。

本系统采用 Python 语言开发,基于 OpenCV、NumPy 等开源库实现核心算法,具有良好的跨平台性和可扩展性。代码结构清晰,采用模块化设计,便于二次开发和功能扩展。系统可广泛应用于机械加工、电子制造、质量检测等领域的小型零部件尺寸测量任务。

系统架构

系统采用模块化分层架构设计,自底向上分为硬件接口层、核心算法层、业务逻辑层和用户界面层四个层次。硬件接口 法层包含自适应混合滤波模块、亚像素边缘检测模块和几何测量模块,各模块独立封装并通过标准接口交互;业务逻辑 层实现了完整的测量流水线,协调图像采集、预处理、边缘检测、标定和尺寸测量等环节;用户界面层基于 PyQt5 框架 mPy 等开源库,具有良好的跨平台性、可维护性和可扩展性。

图1 系统架构图

技术创新

创新点1:自适应混合滤波算法

提出了一种基于逐像素噪声评估的自适应混合滤波算法,通过动态分析图像局部特征,自动调整中值滤波、高斯滤波和原始图像的融合权重,实现了对椒盐噪声和高斯噪声的同时抑制,并有效保护边缘细节。

创新点2:改进的亚像素边缘检测流程

构建了一套完整的亚像素边缘检测流程,将双三次插值放大、Scharr 八方向梯度计算、Devernay 亚像素定位和 Otsu 动态三阈值边缘连接有机融合,实现了 0.1-0.3 像素的边缘定位精度,相比传统 Canny 算法提高 3-5 倍。

创新点3:完整的工业测量系统集成与工程化实现

基于前述算法,开发了一套完整的工业级小型零部件视觉测量系统,实现了从图像采集、预处理、边缘检测、标定到尺寸测量的全流程自动化,具有良好的工程实用性、可扩展性和用户友好性。

快速开始

安装依赖后运行 python main.py,点击”打开本地图像”加载图像,输入标准长度完成标定,点击”一键智能分析”即可获得测量结果。

环境要求

Python 3.10+ 环境,依赖 OpenCV 5.0+、NumPy 2.0+ 和 PyQt5 5.15+,支持 Windows/Linux/macOS 系统。

运行展示

运行main.py

图2 系统主界面

图3 打开本地图像

图4 点击图像两点完成标定

图5 一键智能分析:混合滤波

图6 一键智能分析:亚像素边缘

图7 一键智能分析:测量叠加

图7 点击图像两点测量距离

项目资源

配套文档

点击查看:基于自适应混合滤波与亚像素边缘检测的小型零部件尺寸测量系统 注意:免费提供!

配套文件

包括完整的项目源代码、演示视频、运行截图,开箱即用。

项目信息

作者信息

作者:Bob (张家梁)
项目编号:IP-31-P
原创声明:本项目为原创作品

联系方式

开源协议

本项目采用AGPL-3.0开源协议,允许个人和组织自由使用、修改和分发代码,但基于本项目的衍生作品必须同样开源,且用于提供网络服务时需向用户提供完整源代码。本项目仅供学习研究使用,作者不对使用本项目产生的任何后果承担责任,使用者应遵守当地法律法规,合理合法使用本项目。如本项目对您的研究或工作有所帮助,欢迎引用并注明出处。

声明:本站所有项目资源都可以正常运行,亲测无错!而且我们录制了演示视频,在我们注明的环境版本下,项目运行效果完全和演示视频一致。客服QQ:下载须知