JOURNALOFSHANGQIUNORMALUNIVERSITYVol.34Dec.No.122018
基于Matlab的几种图像锐化处理算法研究
关雪梅
(辽宁对外经贸学院基础课教研部,辽宁大连116052)
摘要:在社会各行业中数字图像处理技术应用非常广泛,由于Matlab工具软件处理图像具有简单而直接的
大部分图像处理过程是在Matlab上实现的.在进行数字图像处理时,经常要通过图像锐化处理来突出图像的特点,
边界信息,本文主要进行基于Matlab的几种图像锐化处理算法分析比较研究,以便在后续的图像处理过程中能既快又精准地完成数字图像的转换.
关键词:Matlab;Roberts算子;Sobel算子;Laplacian算子;Prewitt算子中图分类号:TP391.41文献标识码:A文章编号:1672-3600(2018)12-0012-03
SeveralstudiessharpeningimageprocessingalgorithmsbasedonMatlab
GUANXuemei
(BasicCourseTeachingandResearchDepartment,LiaoningUniversityofInternationalBusinessandEconomics,Dalian116052,China)
Abstract:Digitalimageprocessingtechnologyiswidelyappliedinallsectorsofsociety.BecauseMatlabtoolprocessingsoftwarehassimpleanddirectcharacteristics,mostimageprocessingprocessesareimplementedonMatlab.Indigitalimageprocessing,oftentohighlighttheimageedgeinformationbyimagesharpening,thisarticlemainlycarriesonthecomparativestudyofseveralMatlabalgorithmbasedonimagesharpeningprocessing,soastobeabletoquicklyandaccuratelycompletedigitalimageconversionintheprocessofimageprocessinginthesubsequent.
Keywords:Matlab;Robertsoperator;Sobeloperator;Laplacianoperator;Prewittoperator
近几年来计算机图形图像处理技术飞速发展,已成功应用于社会与成像有关的领域.计算机对图像进行处理分为原始图
图像特征提取和图像识别分析三个部分.原始图像的处理包括图像增强、平滑滤波、图像锐化等内容.原始图像在传像处理,
输的过程中会受到外界环境等诸多因素的影响,因而我们需要对原始图像进行处理,提取有用的图像数据.本文主要研究用Matlab进行图像锐化处理.对图像进行锐化处理的目的有两个:一是加强图像边缘效果,使模糊图像有较高的辨识度,图像的这种模糊往往不是由于操作不当,而是在获取图像的时候受到的影响.二是对研究对象的边界进行提取,进行图像分割,更利于识别目标图像.经过锐化处理后的图像,图像的效果更适合人进行识别和观察.
Matlab的全称为MatrixLaboratory,矩阵实验室.20世纪70年代末,它是由美国CleveMoler博士在讲授数据分析和矩阵理论等课程时编写的软件包Linpack和Eispack组成.是一种非常便捷的工具软件,应用于数学、计算机、遥感、信息工程、机械工程等领域.Matlab软件之所以被广泛应用于图像处理领域是因为它特有的数学矩阵运算功能.Matlab软件在对图像进行处理
首先要将原始图像经过数字化运算形成新的矩阵对应的数字图像,然后利用Matlab软件中强大的图像处理工具箱(Image时,
ProcessingToolbox)中的图像处理系统函数对数字图像进行处理操作,这样就可以把用户从繁琐的数学计算和分析中解脱出来.Matlab的运算功能极强,广泛应用在科学计算领域,尤其对矩阵处理能力简单高效.本文主要是运用Matlab强大的科学运算能力和矩阵处理能力进行数字图像锐化处理研究.
1Roberts算子
Roberts边缘检测算子是一种局部差分算子寻找边缘边缘是图像最基本的特征,图像边缘是由灰度的不连续性而产生的,
的算子.它的原理是把图像对角线方向两个相邻的像素做差运算来近似梯度的幅值,从而检测出图像边缘.
Roberts算子采用的是沿对角线方向相邻两像素进行差运算:依据梯度值可以用互相垂直方向的差分来估计,
y)-R(x-1,y-1)ΔxR=R(x,
y)-R(x,y-1)ΔyR=R(x-1,
它的幅值为:收稿日期:2017-12-17
作者简介:关雪梅(1976—),女,满族,辽宁省大连人,辽宁对外经贸学院教授,硕士,主要从事计算机图像处理的研究.
第12期关雪梅:基于Matlab的几种图像锐化处理算法研究
G(x,y)=
ΔxR槡213
+ΔyR211
,y-Roberts算子计算了中心点处450和1350方向相互正交的灰度变化.合理选择阈值T,为中心点,当22
G(x,y)>T,y)为阶跃状边缘点.其中(x,
0110
Roberts边缘检测算子采用模板和对图像进行卷积运算.
-100-1
Roberts算子是一种比较简单的图像锐化算子,对于处理低噪音陡峭的图像效果不错,但是通过Roberts边缘检测算子提取图像的边缘一般都是比较粗糙,在特殊图像边缘处理中不是很理想.
设置x-
()[][]2Sobel算子
Sobel算子也是一种图像边界信息检测算子,提取图像明暗度的近似值进行运算的差分算子.在数字图像中一般图像的边界部分明暗改变比较显著,一般我们把在该区域内超过一定范围的点作为我们要处理的边界点.Sobel算子与Prewitt算子有
y)定义如下:类似之处,它也有水平和垂直的3*3模板的两个模板.F(x,
[F(x-1,y-1)+2F(x-1,y)+F(x-1,y+1)]A=
-[F(x+1,y-1)+2F(x+1,y)+F(x+1,y+1)][F(x-1,y-1)+2F(x,y-1)+F(x+1,y-1)]B=
-[F(x-1,y-1)+2F(x,y+1)+F(x+1,y+1)]
y)=max(A,B)则:S(x,
经过Sobel算子进行图像处理后,图像的幅值会有所增强.
M=
偏导数计算公式如下:
Sx+Sy
槡22Sx=(a0+ca1+a2)-(a6+ca5+a4)Sy=(a0+ca1+a2)-(a6+ca5+a4)
以下为进行垂直梯度模板和水平梯度模板的检测方法,检测原理如下:
G(x,y)=槡D2y)+D2y)x(x,y(x,其中水平检测模板和垂直检测模板分别为:
-101-1-2-1
Dx=-202Dy=000
-101121
一般来说,相距之差越大,对图像处理结果的影响就越大,上述两个公式对垂直和水平方向产生的影响最大,经过数据处理运算就会得出一副边缘图像.
[][]3Laplacian算子
Laplacian算子可以有效地提取图像的边界信息,它可以把图像中的高频部分和低频部分进行区分,从而达到边缘检测的目的.由于图像的低频部分一般都是图像背景,所以在进行图像边缘检测的过程中,同时保留高频部分和低频部分,以保证图
就可以达到图像信息增强的目的.像的信息完整.把通过Laplacian算子检测出的边界信息和原始图像进行累加运算,
Laplacian算子模板如下:
2
y)=F(x-1,y-1)+F(x-1,y)+F(x-1,y+1)+F(x,y+1)+F(x,
F(x+1,y+1)+F(x+1,y)+F(x+1,y-1)+F(x,y-1)-8F(x,y)
因而采用Laplacian算子进行图像增强的方法为:
FE(x,y)=F(x,y)-Δ2F(x,y)
2
F(x,y)为原始数字图像,y)是通过Laplacian算子进行边缘检测后的图像,其中,ΔF(x,把后者公式带入前者可得图
像为:
FE=9F(x,y)-F(x-1,y-1)-F(x-1,y)-F(x-1,y+1)-F(x,y-1)-
F(x,y+1)-F(x+1,y-1)-F(x+1,y)-F(x+1,y+1)
Laplacian算子进行图像边缘检测,计算简单,在图像线处理过程中很有优势,对于目标图像和背景图像差别很大的数字Laplacian算子可以达到很好的处理效果.图像,
4Prewitt算子
在使用微分算子进行图像边缘检测时通常选取Prewitt算子,在进行图像处理时首先进行梯度的平均值计算,在通过差分来实现最终的处理结果.Prewitt算子的设计原理是在特定区域进行两个方向样本和图像进行卷积运算来实现的,可以通过这两个方法来进行垂直方向和水平方向测试.
y)的定义如下:利用Prewitt算子对F(x,
[F(x-1,y-1)+F(x-1,y)+F(x-1,y+1)]
G(x)=
-[F(x+1,y-1)+F(x+1,y)+F(x+1,y+1)][F(x-1,y+1)+F(x,y+1)+F(x+1,y+1)]
G(y)=
-[F(x-1,y-1)+F(x,y-1)+F(x+1,y-1)]
14商丘师范学院学报
P(x,y)=max[G(x),G(y)]
以下为进行垂直梯度模板和水平梯度模板的检测方法,检测原理如下:
2018年
G(x,y)=槡G2y)+G2y)x(x,y(x,其中水平检测模板和垂直检测模板分别为:
-101111Gx=-101Gy=000
-101-1-1-1
可以采用Prewitt算子通过像素求平均值对图像进行边缘锐化处理,在边界处达到了极值检测边缘,但基本丢失了角点信息,锐化图像的精确度不是很高.
[][]5几种图像锐化处理算法在Matlab上的实现
Roberts算子、Sobel算子、Laplacian算子和Prewitt算子实现图像锐化的程序如下:利用Matlab平台进行图像锐化处理,
Yuantu=imread('yuantu.png');%提取图像BW1=edge(yuantu,'roberts');%用Roberts算子进行边缘检测BW2=edge(yuantu,'sobel');%用Sobel算子进行边缘检测BW3=edge(yuantu,'Laplacian');%用Laplacian算子进行边缘检测BW4=edge(yuantu,'prewitt');%用prewitt算子进行边缘检测subplot(2,3,1),imshow(BW1);title('robertsedgecheck');subplot(2,3,2),imshow(BW2);title('sobeledgecheck');subplot(2,3,3),imshow(BW3);title('laplacianedgecheck');subplot(2,3,4),imshow(BW4);title('prewittedgecheck');处理效果如下图所示:
lena原图sobel图Laplacian图Roberts图prewitt图
本文主要是采用Matlab技术对图像进行锐化处理算法研究,实验结果说明利用Matlab进行图像锐化处理效率高,并且在图像处理方面有很高的实用价值.
6算法分析与总结
通过上述实验,我们可以看出采用Laplacian算子进行图像边缘检测时的方向性不是很准确,在处理过程中经常丢失方向信息,导致处理后的图像边界信息不连续,对噪音较敏感.Roberts算子进行图像锐化处理简单并且容易实现,但对噪音的要求
在较小的情况下垂直和水平两个方向的图像锐化效果比较不错.Prewitt算子和Sobel算子比较类似,在处理图像的权值较高,
Sobel算子对渐变的灰设置有所不同,都具有去噪的能力,它们都能检测出图像的一些虚假边界信息,检测结果图像像素较宽,
度图像处理效果尤为突出.
Roberts算子、prewitt算子及Laplacian算子进行图像边缘检测分析本文主要以Matlab作为工具软件,重点对SOBEL算子、
运算方法简洁易理解,通过简单的程序就可以完成相对复杂的图像处理过程,可以既快又精研究.Matlab软件功能非常强大,
准地完成数字图像转换,在一定程度上推进了图像处理的全过程,达到边缘检测满意的效果.
参考文献:
[1]M].西安:西安科技大学出版社,2011.胡小军,徐飞.MATLAB应用图像处理[[2]J].计算机工程与应用,2012,48(4):182-185.蒋伟,陈辉.基于分数阶微分和sobel算子的边缘检测新模型[[3]M].北京:化学工业出版社,2013.杨帆.数字图像处理及应用[[4]J].长江科学院院报,2014(7):86-90.郭磊,黄锋华,邱静.基于MATLAB图像处理的潮位数字化方法及应用[[5]J].山东工业技术,2015(03):144-148.郭平,赵刚,张晶.基于MATLAB数字图像处理的方法应用教学[[6]D].黑龙江大学,2015.孙晓昕.基于FPGA的数字图像压缩去噪方法研究及MATLAB实现[[7]J].电脑知识与技术,2016(02):55-58.王耀菊.Matlab在图像后处理方面的应用实践及效果分析[
[责任编辑:王军]
因篇幅问题不能全部显示,请点此查看更多更全内容