APP下载

一种基于MATLAB图像边界提取算法

2016-01-31郑永永刘晓敏刘洪波赵云伟

吉林化工学院学报 2015年11期
关键词:像素点

郑永永,刘晓敏,刘洪波,赵云伟

(1.北华大学 机械工程学院,吉林 吉林 132021;2.北华大学 工程训练中心,吉林 吉林 132021)



一种基于MATLAB图像边界提取算法

郑永永1,刘晓敏2,刘洪波1,赵云伟2

(1.北华大学 机械工程学院,吉林 吉林 132021;2.北华大学 工程训练中心,吉林 吉林 132021)

摘要:边缘作为图像基本特征之一,图像上其他特征大都是由边缘区域的这些基本特征所推导出来的.因此,如何获取高精度的图形边缘显得尤为重要.本文利用MATLAB进行图像边界特征提取,并介绍了处理过程中的重要步骤.实验结果表明,该方法具有较好的边界特征提取能力.

关键词:MATLAB;边界特征提取;像素点

数字图像处理技术最早出现于20世纪50年代,经过半个多世纪的发展,已经广泛地应用于工业、遥感、医疗保健、航空航天、军事等各个领域,在国民经济中发挥着越来越大的作用[1-2].图像边缘的识别精度将直接影响测量的精度[3],因此,如何获取高精度的图像边缘已经成为几何量精密测量领域的热门话题,国内外学者提出很多图像边缘的提取方法,但是这些算法大多过于复杂,运算量大,不利于实时处理[4-6].

为了能够准确快速的提取边界轮廓,本文出了一种利用MATLAB进行图像边界特征提取的方法,并且通过样例详细地论述了该方法在提取边界特征过程中的几个重要步骤.结果证明,该方法具有较好的边界特征提取能力,且边界轮廓特征定位较为准确.

1 边界特征提取方法

边缘作为图像基本特征之一,图像上其他特征大都是由边缘区域的这些基本特征所推导出来的.因此,图形边界相关信息的提取在图像几何量的测量工作中起到很重要的作用.文中提出的利用MATLAB进行图形边界特征提取的方法,主要由以下几个步骤完成:

1.1 图片保存

首先,将螺纹的图片保存到MATLAB的当前工作目录,以便读取,保存路径为(C:Documents and SettingsAdministratorMyDocumentsMATLABLuowen),保存类型JPG格式.

1.2 将图片导入MATLAB

运行MATLAB,在命令窗口输入命令:I=imread('luowen.jpg'),点击回车将图片导入到MATLAB,图片显示(imshow(I)),显示结果如图1所示.为了保证图像不失真,可利用命令:J=rgb2gray(I),图片显示(imshow(J)),点击回车将RGB图像转换为灰度图像,图像显示效果如图2所示.

图1 螺纹RGB图

图2 螺纹二值图

1.3 图像滤波

由于各种各样因素的影响,图像不可避免会含有噪声,进而使得图形画质出现不同程度的退化,图像显得模糊.所以,如何抑制图像退化,减少噪声对图像画质的影响,对于后续的图像分析和图形边界的识别显得尤为重要.

比较常用的滤波方式有中值滤波和均值滤波两种.均值滤波是对图像中的所有像素进行均值处理,图像的边界会变得模糊,对具有极大值和极小值的椒盐噪声来说,均值滤波不能起到很好的去噪效果.中值滤波较均值滤波的去除噪音效果更明显,在灰度变化较小的情况下有较好的平滑效果,同时也降低了边界的模糊程度.为了更好地提取图像边界信息,本文选择中值滤波[7-8].

中值滤波是通过邻域内像素值的中位数来作为输出图像的像素值,MATLAB中图形处理工具箱里有专门的中值滤波函数medfilt2,其调用格式为:

B= medfilt2(A,[M,N])

式中,B是输出图像,A作为输入图像,[M,N]为滤波窗口的大小.

利用5x5的中值滤波对J进行滤波,在MATLAB的命令窗口输入以下代码:

k= medfilt2(J,[5,5]);imshow(k);

滤波效果如图3所示.

图3 中值滤波效果

1.4 边缘检测

经典的边缘检测算子(Roberts、Sobel、Prewitt、Canny)检测的图像边界都有各自的特点:运用Roberts交叉微分算子运算可以提取出图像的细节轮廓;Sobel微分算子是一种奇数大小(3×3)的模板下的全方向微分算子;Prewitt微分算子的思路与Sobel微分算子的思路类似,是在一个奇数大小的模板中定义其微分运算;Canny算子是一个线性线性算子,可以在抵抗噪声与边缘检测之间获得一个最佳的折中,就是高斯函数的一阶导数[9].针对不同的环境和要求,应选择合适的算子来对图像进行边缘检测.本文对螺纹图像用四种算子均作了处理,螺纹图像边缘检测的MATLAB实现程序:

a=edge(k,'canny');

b=edge(k,'Roberts');

c=edge(k,'sobel');

d=edge(k,'prewitt');

subplot(2,2,1),imshow(a);

subplot(2,2,2),imshow(b);

subplot(2,2,3),imshow(c);

subplot(2,2,4),imshow(d);

从图4中可以看以,Sobel和Prewitt两种算子对螺纹图像边缘检测的结果较好,可任选其一作为螺纹图像边缘检测的算子,不妨选Sobel算子.

Canny算子

Roberts算子

Sobel算子

Prewitt算子图4 各种算子边缘检测

Sobel边缘检测算子是以函数f (x,y)为中心的 3×3 邻域上计算 x 和 y 方向的偏导数.原理是对图像 f (x,y)的每个像素,考察其上、下、左、右邻域灰度的加权差,把各方向(0°、45°、90°、135°方向)的灰度加权差之和作为输出,达到提取出图像边缘的效果[10].Sobel 边缘检测算子的算法由下式给出:

Sobel算子两个方向(即一个垂直方向,一个水平方向)上的卷积模板(图5).通过比较这两个模板算子的最大值作为中心点的输出值,最终的运算结果即是图像的边缘.

图5 Sobel 算子卷积模板

1.5 提取图像边界点的像素坐标

由于边界点的像素坐标与x、y坐标具有垂直相反的关系,因此先要把矩阵I做上下翻转处理.利用如下命令:

a=edge(flipud(c),'canny');

[x,y]=ind2sub(size(c),find(c(:)==1));

plot(x,y)

可以得到物体的轮廓线(图6),轮廓线是物体边缘所有像素点的集合,知道了图像边界点像素值的坐标就可以进行边界长度及面积的计算等等.

通过MATLAB编写程序实现了本文所述的边界提取方法,图像边界点像素值显示(图6),得到边界点的像素值就可以进行边界曲线拟合、距离的测量以及图形面积的计算等.由图可见,边界轮廓线的特征都已经被提取出来,且定位基本准确.

横坐标图6 图像边界轮廓线

2结论

本文对图像边界的提取过程进行了较为详细的论述,图片处理结果表明,本文所提出的图像边界提取方法具有较好的轮廓特征提取和边界特征点检测能力,且运算量少,定位准确.

参考文献:

[1]李红俊,韩冀皖.数字图像处理技术及其应用[J].计算机测量与应用,2002(10):620-622.

[2]刘中合,王瑞雪,王锋德,等.数字图像处理技术现状与展望[J].计算机时代,2009(5):6-8.

[3]宋志刚.利用数字图像处理技术检测锥螺纹[D].长春:吉林大学,2004.

[4]张宏,谭跃刚,吕红梅.边缘检测在计算机视觉几何测量中的应用[J].武汉科技学院学报,2006,19(10):15-18.

[5]张小虎,李由,李立春等.一种基于梯度方向直方图线轮廓提取新方法[J].光学技术,2006,32(6):824-826.

[6]张勇,陈大健,孙志军.两种改进型中值滤波算法比较[J].光电技术应用,2010,25(1):67-70.

[7]赵芳,栾晓明,孙越.数字图像几种边缘检测算子检测比较分析[J].自动化技术与应用,2009,28(3):68,72.

[8]王振兴.基于图像处理的精密测量技术研究[D].陕西:西安电子科技大学,2009.

A Kind of Image Boundary Extraction Algorithm based on MATLAB

ZHENG Yong-yong1,LIU Xiao-min2,LIU Hong-bo1,ZHAO Yun-wei2

(1.School of Mechanica Engineering,Beihua University,Jilin City132021,China;2.Engineering Training Center,Beihua University,Jilin City 132021,China)

Abstract:The edge is one of the basic characteristics of the image.The other features are mostly from these basic features of the edge region of the deduced from the image.Therefore,how to get an edge graphics precision is particularly important.In this paper,a method of using MATLAB to extract the boundary feature is proposed and several important steps in the process are introduced.The results show that the new method has better capability of boundary feature extraction.

Key words:MATLAB;boundary feature extraction;pixel

通信作者:*钟梓楠,E-mail:290101130@qq.com

文章编号:1007-2853(2015)11-0073-04 1007-2853(2015)11-0045-05

作者简介:张立东(1977-),男,吉林九台人,吉林化工学院讲师,硕士,主要从事水处理技术及水资源利用及环境污染治理等方面的研究. 王月(1984-),女,吉林省吉林市人,北华大学助教,硕士.主要从事机械设计及理论机械制造等方面的研究.

收稿日期:2015-08-16 2015-08-18

中图分类号:TH 138.5

文献标志码:B DOI:10.16039/j.cnki.cn22-1249.2015.11.011

猜你喜欢

像素点
图像二值化处理硬件加速引擎的设计
基于局部相似性的特征匹配筛选算法
一种去除椒盐噪声的自适应模糊中值滤波算法
基于像素点筛选的舰船湍流尾迹检测算法
基于5×5邻域像素点相关性的划痕修复算法
基于非对称直方图修改的可逆信息隐藏方案
基于canvas的前端数据加密
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
基于图像块间像素特征的隐写算法设计与实现*
基于AVS的快速亚像素运动估计算法