基于图像的机械零件尺寸测量研究

2021-07-18 07:12苏春妮
电子制作 2021年12期
关键词:算子灰度图像处理

苏春妮

(玉林师范学院计算机科学与工程学院,广西玉林,537000)

0 引言

随着工业技术的高速发展,机械零件尺寸测量已成为工业生产中的一个重要环节,而且对尺寸测量技术水平的要求也越来越高[1]。许多机械零件需要检测孔心距离和外径、轮廓的不规则度,用来检测机械零件是否满足生产精度的要求,如机械零件传动链板要求链板两孔中心距离严格控制在公差范围内,这样才能确保装配好的链条节距一致,所以链板两孔中心距离的测量非常重要[2]。而基于图像处理的机械零件尺寸测量方法,具有非接触、速度快、精度高的特点,满足工业生产对零件测量速度和精度的要求。

基于图像的机械零件尺寸测量软件系统中数字图像处理的算法复杂,使用面向对象设计方法来可以解决复杂的处理模块的问题。类具有封装、继承和多态等特性,将机械零件尺寸测量软件系统建立在类层次结构基础上,这样修改和增加新算法就更加容易,从而保证软件系统具有良好的扩充性[3]。本文将中成熟的算法加入到算法类库中,能够短时间内将有关的图像处理算法组合成可靠的零件尺寸测量系统,快速精确地测量出零件的尺寸。

1 图像处理算法设计

■1.1 图像预处理

成像系统获取的图像往往带有各种各样的噪声,会影响图像的质量。所以在对图像进行特征提取与分析之前,必须改善图像的质量,行之有效的方法是对原始图像进行图像预处理。

(1)灰度化

在机械零件尺寸测量中,彩色图像的RGB 三个分量不需要进行分析。为了减小图像原始数据量,将彩色图像转化成灰度图像,有利于减少后续处理的计算量,加快检测速度。调用OpenCVC[4]函数cvCvtColor(),实现RGB 图像向灰度图像转变。

(2)平滑滤波

机械零件图像在采集过程中往往存在一定程度的噪声干扰,会影响图像质量,给图像分析等后续工作带来了困难,因此去除噪声是图像处理的一项重要内容。为了达到既能消除噪声又能保护图像细节的目的,在此使用非线性滤波器中的中值滤波器,其基本原理是把图像中一点的值用该点的一个邻域中各点值的中值代替,消除孤立的噪声点。调用OpenCV函数cvSmooth(),中值滤波模板大小为默认的3×3。

■1.2 边缘提取

边缘是指图像局部灰度变化最显著的部分。边缘主要存在于目标与目标、区域与区域之间,是图像分割、纹理特征提取和形状特征提取等图像分析的重要基础。为了能更好地提取出机械零件图像的边缘,首先对图像的灰度图进行二值化处理,然后利用边缘检测算子-canny 算子检测出二值图像的边缘。

(1)阈值分割

阈值分割法计算简单,而且总能用封闭且连通的边界定义不交叠的区域,对目标与背景有较强对比的图像显示出较好的分割效果。这种方法的一个关键技术是最优阈值的确定,如果阈值选取过高,则过多的目标区域将被划分为背景区;反之,如果阈值选取过低,则过多的背景区域被划分为目标区域。在本文我们采用图像的二值化处理,选择一个阈值T,调用OpenCVC 函数cvThreshold(),将图像转换为黑白二值图像。

(2)边缘检测

边缘检测有很多算法,常用的检测算子有Roberts算子、Sobel 算子、Prewitt 算子、Laplacian 算子、Canny 算子。Canny 算子具有良好的边缘检测性能,调用OpenCVC 函数cvCanny(),使用canny 算子,检测出机械零件的边缘。

■1.3 Hough 变换

Hough 变换[5]的基本原理在于,利用点与线的对偶性,将图像空间的线条变为参数空间的聚集点,从而检测给定图像是否存在给定性质的曲线。圆的方程为:(x-a)^2+(yb)^2=r^2,其中圆心为(a,b),半径为r,通过Hough变换,将图像空间对应到参数空间。调用OpenCVC 函数cvHoughCircles()根据Hough 变换检测出圆。

基于上述算法介绍,机械零件图像处理算法流程是图像预处理(灰度化、平滑滤波)、边缘提取(阈值分割、边缘检测)、Hough 变换检测圆[2]。

2 图像处理软件设计

软件系统在VS2008 环境中应用OpenCV 来开发,实现基本的数字图像处理算法。软件程序流程图如图1 所示。

图1 软件程序流程图

■2.1 图像处理类介绍

(1)IplImage 图像数据结构体

由于OpenCV 主要针对的是计算机视觉方面的处理,因此在函数库中,最重要的结构体是IplImage 结构。IplImage 结构来源于Intel 的另外一个函数库Intel Image Processing Library (IPL),该函数库主要是针对图像处理。IplImage 包括了图像的长宽高等信息[4]。

(2)CvvImage 类

平常使用OpenCV 时总是跳出一个个窗口,很难将项目进行系统集成,特别是在MFC 等Windows 环境中加载显示OpenCV 中的IplImage 图像;使用OpenCV highgui.h 中定义的CvvImage 类,可以很好的实现OpenCV 和Windows MFC显示接口。CvvImage 类主要用于图像的显示、保存、读取[4]。

(3)CImgView 类

本图像处理软件CImgView类包括以下几个函数:void CImg View::OnRgb2gray() 图像灰度化函数、void CImg View::OnSmooth() 平滑滤波函数、void CImg View::OnLaplace() 阈值化函数、void OnThreshold Change() 边缘检测函数、void CImg View::On Canny() 边缘锐化函数、void CImg View::OnHoughlen()hough 变换函数,这个类主要是用来实现图像处理算法。

■2.2 软件系统操作界面

软件系统操作界面模块在VS2008 环境中应用OpenCV 开发,本文数字图像处理软件来说,应用单文档的应用程序。用户界面通过图像处理类库的公共外部接口请求各种图像处理服务,完成必要的处理任务[6]。

基于图像的零件尺寸测量系统软件能够实现图像灰度化,图像滤波,边缘锐化,阈值分割,边缘检测,零件尺寸测量的功能,将所有功能做成菜单项放置在菜单栏上,每个菜单项又有各个的子菜单,软件界面图2 所示。

图2 软件操作界面

3 零件尺寸测量实验

本次零件尺寸测量选自行车链条的传动链板做实验,图3 中(1)到(6),是对链板两个孔中心之间的距离进行测量实验步骤,图4 和图5 是测量结果。

图3 传动链板两孔中心距测量

图4 Hough 变换结果

Hough 变换测量得到的两个孔径的圆心坐标分别是(60,62),(170,64)。两孔中心距离如图5 所示约为110。

图5 距离测量结果

4 小结

本文以传动链板为研究对象,使用面向对象技术实现数字图像处理算法的软件设计方法,将各种数字图像处理方法封装在一个特殊图像类的层次结构中。增强软件系统的扩充性,且易于维护,能够适应数字图像处理技术的发展。实验结果表明,经过软件处理图像最后得到链板两圆孔中心位置,利用公式可以求出两孔的距离,达到零件测量的要求。此外,该零件尺寸测量系统不限于传动链板零件尺寸测量,还可以用于有需要测量两孔孔心距离的零件,本文开发的软件系统对工业生产有一定的实用价值。

猜你喜欢
算子灰度图像处理
航空滤光片阵列多光谱图像条带灰度调整算法
基于线性源法与图像处理的土壤饱和导水率快速测量方法
“课程思政”视域下职业学校《图像处理》课程教学改革实践
构建《Photoshop图像处理》课程思政实践教学路径的探索
基于图像处理与卷积神经网络的零件识别
天津港智慧工作平台灰度发布系统和流程设计
Domestication or Foreignization:A Cultural Choice
Arduino小车巡线程序的灰度阈值优化方案
QK空间上的叠加算子
逼近论中的收敛性估计