APP下载

基于Matlab的几种图像锐化处理算法研究

2018-10-24关雪梅

商丘师范学院学报 2018年12期
关键词:数字图像图像处理算子

关雪梅

(辽宁对外经贸学院 基础课教研部,辽宁 大连 116052)

近几年来计算机图形图像处理技术飞速发展,已成功应用于社会与成像有关的领域.计算机对图像进行处理分为原始图像处理,图像特征提取和图像识别分析三个部分.原始图像的处理包括图像增强、平滑滤波、图像锐化等内容.原始图像在传输的过程中会受到外界环境等诸多因素的影响,因而我们需要对原始图像进行处理,提取有用的图像数据.本文主要研究用Matlab进行图像锐化处理.对图像进行锐化处理的目的有两个:一是加强图像边缘效果,使模糊图像有较高的辨识度,图像的这种模糊往往不是由于操作不当,而是在获取图像的时候受到的影响.二是对研究对象的边界进行提取,进行图像分割,更利于识别目标图像.经过锐化处理后的图像,图像的效果更适合人进行识别和观察.

Matlab的全称为Matrix Laboratory,矩阵实验室.20世纪70年代末,它是由美国CleveMoler博士在讲授数据分析和矩阵理论等课程时编写的软件包Linpack和Eispack组成.是一种非常便捷的工具软件,应用于数学、计算机、遥感、信息工程、机械工程等领域.Matlab软件之所以被广泛应用于图像处理领域是因为它特有的数学矩阵运算功能.Matlab软件在对图像进行处理时,首先要将原始图像经过数字化运算形成新的矩阵对应的数字图像,然后利用Matlab软件中强大的图像处理工具箱(Image Processing Toolbox)中的图像处理系统函数对数字图像进行处理操作,这样就可以把用户从繁琐的数学计算和分析中解脱出来.Matlab的运算功能极强,广泛应用在科学计算领域,尤其对矩阵处理能力简单高效.本文主要是运用Matlab强大的科学运算能力和矩阵处理能力进行数字图像锐化处理研究.

1 Roberts算子

边缘是图像最基本的特征,图像边缘是由灰度的不连续性而产生的,Roberts边缘检测算子是一种局部差分算子寻找边缘的算子.它的原理是把图像对角线方向两个相邻的像素做差运算来近似梯度的幅值,从而检测出图像边缘.

依据梯度值可以用互相垂直方向的差分来估计,Roberts算子采用的是沿对角线方向相邻两像素进行差运算:

ΔxR=R(x,y)-R(x-1,y-1)

ΔyR=R(x-1,y)-R(x,y-1)

它的幅值为:

Roberts算子是一种比较简单的图像锐化算子,对于处理低噪音陡峭的图像效果不错,但是通过Roberts边缘检测算子提取图像的边缘一般都是比较粗糙,在特殊图像边缘处理中不是很理想.

2 Sobel算子

Sobel算子也是一种图像边界信息检测算子,提取图像明暗度的近似值进行运算的差分算子.在数字图像中一般图像的边界部分明暗改变比较显著,一般我们把在该区域内超过一定范围的点作为我们要处理的边界点.Sobel算子与Prewitt算子有类似之处,它也有水平和垂直的3*3模板的两个模板.F(x,y)定义如下:

则:S(x,y)=max(A,B)

经过Sobel算子进行图像处理后,图像的幅值会有所增强.

偏导数计算公式如下:

Sx=(a0+ca1+a2)-(a6+ca5+a4)

Sy=(a0+ca1+a2)-(a6+ca5+a4)

以下为进行垂直梯度模板和水平梯度模板的检测方法,检测原理如下:

其中水平检测模板和垂直检测模板分别为:

一般来说,相距之差越大,对图像处理结果的影响就越大,上述两个公式对垂直和水平方向产生的影响最大,经过数据处理运算就会得出一副边缘图像.

3 Laplacian算子

Laplacian算子可以有效地提取图像的边界信息,它可以把图像中的高频部分和低频部分进行区分,从而达到边缘检测的目的.由于图像的低频部分一般都是图像背景,所以在进行图像边缘检测的过程中,同时保留高频部分和低频部分,以保证图像的信息完整.把通过Laplacian算子检测出的边界信息和原始图像进行累加运算,就可以达到图像信息增强的目的.Laplacian算子模板如下:

2F(x,y)=F(x-1,y-1)+F(x-1,y)+F(x-1,y+1)+F(x,y+1)+

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)

其中,F(x,y)为原始数字图像,Δ2F(x,y)是通过Laplacian算子进行边缘检测后的图像,把后者公式带入前者可得图像为:

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算子可以达到很好的处理效果.

4 Prewitt算子

在使用微分算子进行图像边缘检测时通常选取Prewitt算子,在进行图像处理时首先进行梯度的平均值计算,在通过差分来实现最终的处理结果.Prewitt算子的设计原理是在特定区域进行两个方向样本和图像进行卷积运算来实现的,可以通过这两个方法来进行垂直方向和水平方向测试.

利用Prewitt算子对F(x,y)的定义如下:

P(x,y)=max[G(x),G(y)]

以下为进行垂直梯度模板和水平梯度模板的检测方法,检测原理如下:

其中水平检测模板和垂直检测模板分别为:

可以采用Prewitt算子通过像素求平均值对图像进行边缘锐化处理,在边界处达到了极值检测边缘,但基本丢失了角点信息,锐化图像的精确度不是很高.

5 几种图像锐化处理算法在Matlab上的实现

利用Matlab平台进行图像锐化处理,Roberts算子、Sobel算子、Laplacian算子和Prewitt算子实现图像锐化的程序如下:

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(′roberts edge check′);

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

title(′sobel edge check′);

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

title(′laplacian edge check′);

subplot(2,3,4),imshow(BW4);

title(′prewitt edge check′);

处理效果如下图所示:

lena原图 sobel图 Laplacian图 Roberts图 prewitt图

本文主要是采用Matlab技术对图像进行锐化处理算法研究,实验结果说明利用Matlab进行图像锐化处理效率高,并且在图像处理方面有很高的实用价值.

6 算法分析与总结

通过上述实验,我们可以看出采用Laplacian算子进行图像边缘检测时的方向性不是很准确,在处理过程中经常丢失方向信息,导致处理后的图像边界信息不连续,对噪音较敏感.Roberts算子进行图像锐化处理简单并且容易实现,但对噪音的要求较高,在较小的情况下垂直和水平两个方向的图像锐化效果比较不错.Prewitt算子和Sobel算子比较类似,在处理图像的权值设置有所不同,都具有去噪的能力,它们都能检测出图像的一些虚假边界信息,检测结果图像像素较宽,Sobel算子对渐变的灰度图像处理效果尤为突出.

本文主要以Matlab作为工具软件,重点对SOBEL算子、Roberts算子、prewitt算子及Laplacian算子进行图像边缘检测分析研究.Matlab软件功能非常强大,运算方法简洁易理解,通过简单的程序就可以完成相对复杂的图像处理过程,可以既快又精准地完成数字图像转换,在一定程度上推进了图像处理的全过程,达到边缘检测满意的效果.

猜你喜欢

数字图像图像处理算子
与由分数阶Laplace算子生成的热半群相关的微分变换算子的有界性
拟微分算子在Hp(ω)上的有界性
各向异性次Laplace算子和拟p-次Laplace算子的Picone恒等式及其应用
基于ARM嵌入式的关于图像处理的交通信号灯识别
一类Markov模算子半群与相应的算子值Dirichlet型刻画
基于图像处理的机器人精确抓取的设计与实现
机器学习在图像处理中的应用
ARGUS-100 艺术品鉴证数字图像比对系统
基于图像处理的定位器坡度计算
基于块效应测度的JPEG数字图像盲取证