APP下载

基于Matlab GUI的形状检测系统设计

2019-06-11李阳娟

电子技术与软件工程 2019年7期
关键词:圆形直方图矩形

文/李阳娟

1 引言

图像识别主要是对文字、声音和图像等信息进行处理和识别,主要应用于文字识别、目标的检测与识别、生物医学信号和图像分析等方面。在图像识别与理解的过程中,物体的形状属于高级信息,简单的形状可以组合成更复杂的图形,检测出简单的几何形状,进而识别出复杂图像,在数字图像中对简单几何形状的识别意义重大 。该文利用MATLAB GUI设计一个简单的形状识别系统,提取不同形状的边缘特征,检测出简单的几何图形,如圆、矩形、正方形等,可以实现一些简单的工业检测,如简单的零件检测等。相较于传统的形状检测,该系统不需要人为检测,极大地提高了生产效率。

2 图像预处理

形状检测系统载入图像之后需要对图像进行预处理,消除图像中的无关信息,简化图像数据,增强图像的特征,进而增加图像特征提取、分割和识别的可靠性。一般流程为灰度转换,然后对灰度图像进行图像平滑和提取边缘,运用形状检测算法,得到结果,结束程序。

2.1 灰度转换

图像的灰度转换是反应灰度的输入/输出映射关系,增强图像中感兴趣的区域,抑制不感兴趣的区域,达到增强图像对比度的目的。灰度变换处理是一种基础的图像增强处理技术,通过灰度变换可以使图像对比度扩展,图像清晰,从而使图像在视觉上得到改观。灰度直方图是一种简单、有效的分析图像处理方法,假定灰度直方图的横坐标是灰度级r,表示灰度值为k的灰度级,纵坐标是具有该灰度级的像素的概率p(rk),则

直方图可以反映原图灰度值的分布情况,而通过对直方图形状的修改可以增强图像的对比度。灰度转换处理图像如图1所示。

2.2 噪声处理

在实际操作所获得的图像由于各种噪声的干扰,使得图像质量变差,往往对图像分析不利,需要进行图像平滑处理。图像平滑是来消除或减少图像中的噪声,突出图像的主干部分,改善图像质量,文中采用高斯噪声领域平均法来去除噪声。邻域平均法计算速度快,图像的噪声衰减,但是会造成图像的边缘变得模糊。为了减少图像模糊,可以采用阈值法来对图像进行平滑或选取半径小的邻域。MATLAB中提供imf iter函数用于实现图像的平滑处理,处理结果如图2所示。

2.3 边缘检测

边缘检测技术在数字图像处理中非常重要,因为边缘是图像中所要提取的目标和背景的分界线,只有提取了边缘才能将背景和目标区分开来。两个具有不同灰度值的相邻区域之间总存在边缘,边缘是灰度值不连续的结果。在数字图像处理中常用一阶导数和二阶导数的幅值大小来判断图像中边缘的位置。图像边缘是由于相邻像素间的灰度值变化引起的,处在边缘地带的图像变化比较激烈,梯度幅值较大。设计采用保留最清晰轮廓的Sobel算子进行边缘检测,MATLAB中提供edge函数用于实现图像的边缘提取。结果如图3所示。

3 基于Matlab GUI的形状检测

3.1 基本几何形状的检测

图1:灰度变换图

在一副图像中,除了目标对象大小不同之外,也会出现不同形状的物体,有圆形、方形、不规则图形,如图4。因此,可以根据工件的面积大小或者周长长度来对图形进行分类。该设计主要采用几何参数法(如矩、面积、周长等)来判断给出的的图像是什么形状。一般采用圆形度来衡量某图形与圆形相似的程度,圆形度公式:

A是指目标图像的面积,P是指目标图像的周长,当目标图像为圆形的时候,C等于1,当目标图像为其他任意形状的时候,C小于1。与圆形度类似,矩形度是用来描述图形与矩形相似程度的量,公式:

A0是指目标图像的面积,AR是指包围该图像的最小矩形面积,R的大小反映物体与矩形的接近程度,矩形度的值限定在0到1之间。设计中先对各图形边缘进行提取,然后根据各种形状的面积计算公式来计算出各图形的圆形度和矩形度。之后和预设的值逐个进行比较,直到判断出图像是什么形状。若为标准图像,则圆形度与矩形度应为1。实际测量时存在不稳定因素,允许有5%的误差。检测结果如图5。

3.2 圆形工件的检测

图2:平滑图像图

图3:边缘检测图

图4:几何图形原始图像

图5:几何参数法图像检测结果

图6:圆形工件原始图像

图7:Hought变换检测结果

在简单几何形状的基础上,再对实物图进行检测,以常见的工业检测圆形工件为例,如图6。采用Hough变换检测圆。Hough变换是利用点与线的对偶性将原始图像空间的给定的曲线通过曲线表达形式变为参数空间的一个点。这样就把原始图像中给定曲线的检测问题转化为寻找参数空间中的峰值问题。对一直角坐标系中的直线,其方程可以写成ρ=x cos θ+y sin θ ,参数ρ和θ可以唯一确定一条直线,该变换将(x,y)平面内的一条直线变换成了(ρ,θ)平面的一个点。从上面的Hough检测直线可推广检测曲线,识别出圆形。首先建立三维累加数组,利用圆的方程为,通过Hough变换将图像的空间对应到参数空间设置角度θ的变化范围和步长,半径r的变换范围和步长。利用公式x=a+r cos θ,y=b+r sin θ求出a和b的值,如果a和b的值在合理的范围之类,则对该位置进行累加。检索完毕,寻找最大值,求出圆心坐标与半径,由此可检测出圆的边界,从而识别出圆形来。检测结果为图7。

4 结论

该文设计了基于Matlab GUI的形状检测系统,该系统具有良好的人机交互界面,能够满足基本简单的几何形状检测操作,在这基础上,对于简单的圆形工件检测也具备良好效果。该设计主要是根据目标图像的形状进行分类识别,相比传统检测手段更高效便捷,可应用于图像自动识别分类,图像智能检索等领域。

猜你喜欢

圆形直方图矩形
符合差分隐私的流数据统计直方图发布
两矩形上的全偏差
化归矩形证直角
用直方图控制画面影调
肥皂泡为什么是圆形?
圆形题
圆形变身喵星人
基于空间变换和直方图均衡的彩色图像增强方法
基于直方图平移和互补嵌入的可逆水印方案