拉普拉斯算子、prewitt算子、sobel算子对图像锐化处理
- 格式:doc
- 大小:470.50 KB
- 文档页数:7
图像锐化有哪些方法图像锐化是图像处理中常用的一种操作,可以通过增强图像的高频信息,使图像边缘更加清晰。
常用的图像锐化方法主要包括增强算子、滤波操作和边缘检测等。
1. 增强算子方法:增强算子方法是基于对图像进行空间变换,通过改变像素点的灰度值来增强图像的边缘和细节。
常用的增强算子方法包括拉普拉斯算子、索伯算子和普瑞维特算子等。
这些算子可以对图像进行卷积操作,得到锐化后的图像。
例如,拉普拉斯算子可以通过在每个像素点和周围邻域之间进行卷积操作来增强图像的高频信息。
2. 滤波操作方法:滤波操作方法是通过设计一定的滤波器来对图像进行卷积操作,以增强图像的边缘细节。
常用的滤波操作方法包括高通滤波器、边缘增强滤波器和维纳滤波器等。
高通滤波器可以通过减少图像低频分量来增强图像的高频信息,从而使图像边缘更加清晰。
边缘增强滤波器则可以通过增加图像的局部差异来增强图像的边缘细节。
维纳滤波器是一种自适应滤波器,可以根据图像的噪声特性来进行滤波操作,以减少噪声对锐化效果的影响。
3. 边缘检测方法:边缘检测方法是通过寻找图像的局部极值点来确定图像的边缘位置,从而实现图像锐化。
常用的边缘检测方法包括Sobel算子、Canny算子和LoG算子等。
Sobel算子可以通过计算图像梯度的幅值和方向来确定图像边缘的位置和方向。
Canny 算子是一种基于图像梯度的多阈值边缘检测算法,可以通过滤波、非极大值抑制和双阈值检测等步骤来确定图像的强边缘和弱边缘。
LoG算子是一种拉普拉斯高斯算子,可以通过在图像上进行卷积操作来检测图像的边缘信息。
除了以上的方法,图像锐化还可以通过多尺度分析、形态学操作和投影剪切等方法来实现。
多尺度分析可以通过对图像的不同尺度进行分析和合成来增强图像的局部细节和边缘信息。
形态学操作是一种基于图像形状和结构的操作,可以通过腐蚀、膨胀和开闭操作等来增强图像的边缘信息。
投影剪切是一种基于数学变换的图像锐化方法,可以通过对图像的投影进行变换来改变图像的灰度级分布,从而增强图像的边缘和细节。
几种常用边缘检测算法的比较边缘检测是在数字图像上寻找图像亮度变化的过程,它对于图像处理和计算机视觉任务非常重要。
常见的边缘检测算法有Sobel算子、Prewitt算子、Roberts算子和Canny边缘检测算法。
本文将对这几种算法进行比较。
1. Sobel算子:Sobel算子是一种常见的边缘检测算法,它通过计算图像像素点与其邻域像素点之间的差异来检测边缘。
Sobel算子具有简单、快速的优点,可以检测水平和垂直方向的边缘,但对于斜向边缘检测效果较差。
2. Prewitt算子:Prewitt算子也是一种常用的边缘检测算法,它类似于Sobel算子,通过计算图像像素点与其邻域像素点之间的差异来检测边缘。
Prewitt算子可以检测水平、垂直和斜向边缘,但对于斜向边缘的检测结果可能不够精确。
3. Roberts算子:Roberts算子是一种简单的边缘检测算法,它通过计算图像像素点与其对角线方向上的邻域像素点之间的差异来检测边缘。
Roberts算子计算简单,但对于噪声敏感,容易产生干扰边缘。
4. Canny边缘检测算法:Canny边缘检测算法是一种经典的边缘检测算法,它包含多个步骤:高斯滤波、计算梯度、非最大抑制和双阈值处理。
Canny算法具有良好的边缘定位能力,并且对于噪声和细节边缘具有较好的抑制效果。
但Canny算法计算复杂度较高,在处理大规模图像时可能较慢。
综上所述,不同的边缘检测算法具有各自的优缺点。
若要选择适合应用的算法,需要综合考虑图像特点、计算复杂度和应用需求等因素。
如果对图像边缘的方向要求不高,可以选择Sobel或Prewitt算子;如果对图像边缘的方向要求较高,可以选择Canny算法。
另外,为了获得更好的边缘检测结果,通常需要进行适当的预处理,如灰度化、滤波和阈值处理等。
最后,对于不同的应用场景,可能需要使用不同的算法或算法组合来满足特定需求。
锐化和降噪的方法图像处理是如今计算机视觉领域的一个重要组成部分,其目的是改善图像的质量和清晰度。
而锐化和降噪是图像处理中常用的两种方法,用于增强图像的细节和减少图像的噪点。
本文将介绍锐化和降噪的基本原理、常用方法以及其在实际应用中的作用。
一、锐化的方法在图像处理中,锐化是指增强图像的边缘和细节,使图像更加清晰和鲜明。
以下是几种常见的锐化方法:1.1 拉普拉斯锐化拉普拉斯锐化是一种基于二阶导数的锐化方法,它通过对图像进行拉普拉斯运算来增强图像的边缘。
具体步骤为:(1)对原始图像进行高斯模糊,以减少噪点的干扰;(2)对模糊后的图像进行拉普拉斯运算,得到图像的二阶导数;(3)将二阶导数与原始图像相加,得到锐化后的图像。
1.2 锐化掩模锐化掩模是一种基于图像卷积的锐化方法,它通过对图像进行卷积操作来增强图像的边缘和细节。
具体步骤为:(1)选择一个锐化模板,如Sobel算子或Prewitt算子;(2)将锐化模板与原始图像进行卷积运算,得到锐化后的图像。
1.3 高提升滤波高提升滤波是一种基于增强高频信息的锐化方法,它通过对图像进行平滑处理和原始图像之间的差值运算来增强图像的细节。
具体步骤为:(1)对原始图像进行平滑处理,如均值滤波或高斯滤波;(2)将平滑后的图像与原始图像之间的差值与一个增益因子相乘,得到锐化后的图像。
二、降噪的方法在图像处理中,噪点是指无意义的、干扰图像质量的像素值。
降噪方法的目标是减少噪点的数量和强度,以提高图像的质量。
以下是几种常见的降噪方法:2.1 中值滤波中值滤波是一种非线性滤波方法,它通过对图像进行排序,并选择中间值作为输出像素值来减少噪点的影响。
具体步骤为:(1)选择一个滤波器的窗口大小,如3x3或5x5;(2)将窗口中的像素按照灰度值进行排序,选择中间值作为输出像素值;(3)依次处理图像中的每个像素,得到降噪后的图像。
2.2 均值滤波均值滤波是一种线性滤波方法,它通过对图像进行平滑处理来减少噪点的干扰。
Python 图像处理OpenCV (12):Roberts 算⼦、Prewitt 算⼦、Sobe。
前⽂传送门:引⾔前⽂介绍了 Canny 算⼦边缘检测,本篇继续介绍 Roberts 算⼦、 Prewitt 算⼦、 Sobel 算⼦和 Laplacian 算⼦等常⽤边缘检测技术。
Roberts 算⼦Roberts 算⼦,⼜称罗伯茨算⼦,是⼀种最简单的算⼦,是⼀种利⽤局部差分算⼦寻找边缘的算⼦。
他采⽤对⾓线⽅向相邻两象素之差近似梯度幅值检测边缘。
检测垂直边缘的效果好于斜向边缘,定位精度⾼,对噪声敏感,⽆法抑制噪声的影响。
1963年, Roberts 提出了这种寻找边缘的算⼦。
Roberts 边缘算⼦是⼀个 2x2 的模版,采⽤的是对⾓⽅向相邻的两个像素之差。
Roberts 算⼦的模板分为⽔平⽅向和垂直⽅向,如下所⽰,从其模板可以看出, Roberts 算⼦能较好的增强正负 45 度的图像边缘。
dx =−1001dy =0−11Roberts 算⼦在⽔平⽅向和垂直⽅向的计算公式如下:d x (i ,j )=f (i +1,j +1)−f (i ,j )d y (i ,j )=f (i ,j +1)−f (i +1,j )Roberts 算⼦像素的最终计算公式如下:S =d x (i ,j )2+dy (i ,j )2今天的公式都是⼩学⽣⽔平,千万别再说看不懂了。
实现 Roberts 算⼦,我们主要通过 OpenCV 中的 filter2D() 这个函数,这个函数的主要功能是通过卷积核实现对图像的卷积运算:def filter2D(src, ddepth, kernel, dst=None, anchor=None, delta=None, borderType=None)src: 输⼊图像ddepth: ⽬标图像所需的深度kernel: 卷积核接下来开始写代码,⾸先是图像的读取,并把这个图像转化成灰度图像,这个没啥好说的:# 读取图像img = cv.imread('maliao.jpg', cv.COLOR_BGR2GRAY)[][]√rgb_img = cv.cvtColor(img, cv.COLOR_BGR2RGB)# 灰度化处理图像grayImage = cv.cvtColor(img, cv.COLOR_BGR2GRAY)然后是使⽤ Numpy 构建卷积核,并对灰度图像在 x 和 y 的⽅向上做⼀次卷积运算:# Roberts 算⼦kernelx = np.array([[-1, 0], [0, 1]], dtype=int)kernely = np.array([[0, -1], [1, 0]], dtype=int)x = cv.filter2D(grayImage, cv.CV_16S, kernelx)y = cv.filter2D(grayImage, cv.CV_16S, kernely)注意:在进⾏了 Roberts 算⼦处理之后,还需要调⽤convertScaleAbs()函数计算绝对值,并将图像转换为8位图进⾏显⽰,然后才能进⾏图像融合:# 转 uint8 ,图像融合absX = cv.convertScaleAbs(x)absY = cv.convertScaleAbs(y)Roberts = cv.addWeighted(absX, 0.5, absY, 0.5, 0)最后是通过 pyplot 将图像显⽰出来:# 显⽰图形titles = ['原始图像', 'Roberts 算⼦']images = [rgb_img, Roberts]for i in range(2):plt.subplot(1, 2, i + 1), plt.imshow(images[i], 'gray') plt.title(titles[i])plt.xticks([]), plt.yticks([])plt.show()最终结果如下:Prewitt 算⼦Prewitt 算⼦是⼀种⼀阶微分算⼦的边缘检测,利⽤像素点上下、左右邻点的灰度差,在边缘处达到极值检测边缘,去掉部分伪边缘,对噪声具有平滑作⽤。
《数字图像处理作业》图像的锐化处理---拉普拉斯算子、prewitt算子、sobel算子性能研究对比一、算法介绍1.1图像锐化的概念在图像增强过程中,通常利用各类图像平滑算法消除噪声,图像的常见噪声主要有加性噪声、乘性噪声和量化噪声等。
一般来说,图像的能量主要集中在其低频部分,噪声所在的频段主要在高频段,同时图像边缘信息也主要集中在其高频部分。
这将导致原始图像在平滑处理之后,图像边缘和图像轮廓模糊的情况出现。
为了减少这类不利效果的影响,就需要利用图像锐化技术,使图像的边缘变得清晰。
图像锐化处理的目的是为了使图像的边缘、轮廓线以及图像的细节变得清晰,经过平滑的图像变得模糊的根本原因是因为图像受到了平均或积分运算,因此可以对其进行逆运算(如微分运算)就可以使图像变得清晰。
从频率域来考虑,图像模糊的实质是因为其高频分量被衰减,因此可以用高通滤波器来使图像清晰。
但要注意能够进行锐化处理的图像必须有较高的性噪比,否则锐化后图像性噪比反而更低,从而使得噪声增加的比信号还要多,因此一般是先去除或减轻噪声后再进行锐化处理。
考察正弦函数,它的微分。
微分后频率不变,幅度上升2πa倍。
空间频率愈高,幅度增加就愈大。
这表明微分是可以加强高频成分的,从而使图像轮廓变清晰。
最常用的微分方法是梯度法和拉普拉斯算子。
但本文主要探究几种边缘检测算子,Laplace、Prewitt、Sobel算子以下具体介绍。
图像边缘检测:边缘检测是检测图像局部显著变化的最基本运算,梯度是函数变化的一种度量。
图像灰度值的显著变化可用梯度的离散逼近函数来检测,大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。
边缘检测可分为两大类基于查找一类和基于零穿越的一类。
基于查找的方法通过寻找图像一阶导数中的最大和最小值来检测边界,通常是将边界定位在梯度最大的方向。
基于零穿越的方法通过寻找图像二阶导数零穿越来寻找边界,通常是Laplacian过零点或者非线性差分表示的过零点。
数字图像处理实验实验总学时:10学时实验目的:本实验的目的是通过实验进一步理解和掌握数字图像处理原理和方法。
通过分析、实现现有的图像处理算法,学习和掌握常用的图像处理技术。
实验内容:数字图像处理的实验内容主要有三个方面:(1) 对图像灰度作某种变换,增强其中的有用信息,抑制无用信息,使图像的视在质量提高,以便于人眼观察、理解或用计算机对其作进一步的处理。
(2) 用某种特殊手段提取、描述和分析图像中所包含的某些特征和特殊的信息,主要的目的是便于计算机对图像作进一步的分析和理解,经常作为模式识别和计算机视觉的预处理。
这些特征包括很多方面,例如,图像的频域特性、灰度特征、边界特征等。
(3) 图像的变换,以便于图像的频域处理。
实验一图像的点处理实验内容及实验原理:1、灰度的线性变换灰度的线性变换就是将图像中所有的点的灰度按照线性灰度变换函数进行变换。
该线性灰度变换函数是一个一维线性函数:灰度变换方程为:其中参数为线性函数的斜率,函数的在y轴的截距,表示输入图像的灰度,表示输出图像的灰度。
要求:输入一幅图像,根据输入的斜率和截距进行线性变换,并显示。
2、灰度拉伸灰度拉伸和灰度线性变换相似。
不同之处在于它是分段线性变换。
表达如下:其中,(x1,y1)和(x2,y2)是分段函数的转折点。
要求:输入一幅图像,根据选择的转折点,进行灰度拉伸,显示变换后的图像。
3、灰度直方图灰度直方图是灰度值的函数,描述的是图像中具有该灰度值的像素的个数,其横坐标表示像素的灰度级别,纵坐标表示该灰度出现的频率(象素的个数)。
要求:输入一幅图像,显示它的灰度直方图,可以根据输入的参数(上限、下限)显示特定范围的灰度直方图。
4、直方图均衡:要求1 显示一幅图像pout.bmp的直方图;2 用直方图均衡对图像pout.bmp进行增强;3 显示增强后的图像。
实验二:数字图像的平滑实验内容及实验原理:1.用均值滤波器(即邻域平均法)去除图像中的噪声;2.用中值滤波器去除图像中的噪声3. 比较两种方法的处理结果 实验步骤:用原始图象lena.bmp 或cameraman.bmp 加产生的3%椒盐噪声图象合成一幅有噪声的图象并显示;1. 用均值滤波器去除图像中的噪声(选3x3窗口);2. f (x 0,y 0)=Med {f (x,y )∨x ∈[x 0−N,x 0+N ],y ∈[y 0−N,y 0+N ]}用中值滤波器去除图像中的噪声(选3x3窗口做中值滤波);3. 将两种处理方法的结果与原图比较,注意两种处理方法对边缘的影响。
图像处理中的边缘检测与图像增强技术边缘检测是图像处理领域中的重要技术,它主要用于提取图像中的边缘信息,帮助我们分析和理解图像。
图像增强则是通过改变图像的亮度、对比度等参数,使得图像更加明亮和清晰。
本文将介绍边缘检测和图像增强的原理、常用算法和应用领域。
一、边缘检测技术边缘是图像中灰度变化比较大的区域,通常表示物体边界或者纹理的边界。
边缘检测的目标是在图像中找到这些边缘,并将其提取出来。
常见的边缘检测算法有Sobel算子、Prewitt算子、Roberts算子和Canny算子。
1. Sobel算子Sobel算子是一种最简单和最常用的边缘检测算法之一。
它通过在图像中进行卷积运算,通过计算像素点与其邻域像素点之间的差异来作为边缘的强度。
Sobel算子有水平和垂直两个方向的算子,通过计算两个方向上的差异来得到最终的边缘值。
2. Prewitt算子Prewitt算子也是一种常用的边缘检测算法,它与Sobel算子类似,也是通过计算像素点与其邻域像素点之间的差异来作为边缘的强度。
不同之处在于Prewitt算子使用了不同的卷积核,其结果可能会略有差异。
3. Roberts算子Roberts算子是一种简单的边缘检测算法,它使用了一个2x2的卷积核。
通过计算相邻像素点之间的差异,Roberts算子可以提取图像中的边缘信息。
然而,Roberts算子相对于其他算法来说,其结果可能会较为粗糙。
4. Canny算子Canny算子是一种边缘检测的经典算法,由于其较好的性能和效果,被广泛应用于边缘检测领域。
Canny算子主要包括以下几步:首先,对图像进行高斯滤波,以平滑图像;其次,计算图像的梯度和边缘方向;然后,通过非极大值抑制去除不是边缘的像素;最后,通过双阈值算法将边缘连接为一条连续的线。
二、图像增强技术图像增强是指通过改变图像的亮度、对比度等参数,使得图像更加明亮和清晰。
图像增强可以提高图像的质量,使得图像更适合用于后续的分析和处理。
边缘检测是计算机视觉和图像处理中的一项重要任务,它用于识别图像中物体的边界或不同区域之间的边缘。
边缘检测算法通过检测图像中像素强度的快速变化来工作。
以下是一些常用的边缘检测算法:Sobel算子:Sobel边缘检测算法是一种基于一阶导数的离散微分算子,它结合了高斯平滑和微分求导。
Sobel算子对噪声具有平滑作用,提供较为精确的边缘方向信息,但边缘定位精度不够高。
当对精度要求不是很高时,是一种较为常用的边缘检测方法。
Prewitt算子:Prewitt算子是一种一阶微分算子的边缘检测,利用像素点上下、左右邻点的灰度差,在边缘处达到极值检测边缘,去掉部分伪边缘,对噪声具有平滑作用。
其原理是在图像空间利用两个方向模板与图像进行邻域卷积来完成的,这两个方向模板一个检测水平边缘,一个检测垂直边缘。
Canny算子:Canny边缘检测算法是John F. Canny于1986年开发出来的一个多级边缘检测算法。
Canny的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是:好的检测- 算法能够尽可能多地标识出图像中的实际边缘,漏检真实边缘的情况和误检非边缘轮廓的情况都最少。
Laplacian算子:Laplacian算子是一种二阶导数算子,具有旋转不变性,可以满足不同走向的图像边缘锐化要求。
通常其算子的系数之和需要为零。
由于拉普拉斯算子对噪声比较敏感,所以图像一般先经过平滑处理,因为平滑处理会用到拉普拉斯算子,所以通常将平滑处理的过程和拉普拉斯锐化处理的过程合并在一起做,此时平滑处理的滤波器又称为掩模。
Roberts算子:Roberts算子又称为交叉微分算法,它是基于2x2的邻域计算差分的方法。
Roberts算子采用对角线方向相邻两像素之差近似梯度幅值检测边缘。
这些算法各有优缺点,选择哪种算法取决于具体的应用场景和需求。
例如,Canny算子通常被认为是边缘检测的最优算法,但它在计算上可能比Sobel或Prewitt算子更复杂。
《数字图像处理作业》图像的锐化处理---拉普拉斯算子、prewitt算子、sobel算子性能研究对比完成日期:2012年10月6日一、算法介绍1.1图像锐化的概念在图像增强过程中,通常利用各类图像平滑算法消除噪声,图像的常见噪声主要有加性噪声、乘性噪声和量化噪声等。
一般来说,图像的能量主要集中在其低频部分,噪声所在的频段主要在高频段,同时图像边缘信息也主要集中在其高频部分。
这将导致原始图像在平滑处理之后,图像边缘和图像轮廓模糊的情况出现。
为了减少这类不利效果的影响,就需要利用图像锐化技术,使图像的边缘变得清晰。
图像锐化处理的目的是为了使图像的边缘、轮廓线以及图像的细节变得清晰,经过平滑的图像变得模糊的根本原因是因为图像受到了平均或积分运算,因此可以对其进行逆运算(如微分运算)就可以使图像变得清晰。
从频率域来考虑,图像模糊的实质是因为其高频分量被衰减,因此可以用高通滤波器来使图像清晰。
但要注意能够进行锐化处理的图像必须有较高的性噪比,否则锐化后图像性噪比反而更低,从而使得噪声增加的比信号还要多,因此一般是先去除或减轻噪声后再进行锐化处理。
考察正弦函数,它的微分。
微分后频率不变,幅度上升2πa 倍。
空间频率愈高,幅度增加就愈大。
这表明微分是可以加强高频成分的,从而使图像轮廓变清晰。
最常用的微分方法是梯度法和拉普拉斯算子。
但本文主要探究几种边缘检测算子,Laplace、Prewitt、Sobel算子以下具体介绍。
图像边缘检测:边缘检测是检测图像局部显著变化的最基本运算,梯度是函数变化的一种度量。
图像灰度值的显著变化可用梯度的离散逼近函数来检测,大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。
边缘检测可分为两大类基于查找一类和基于零穿越的一类。
基于查找的方法通过寻找图像一阶导数中的最大和最小值来检测边界,通常是将边界定位在梯度最大的方向。
基于零穿越的方法通过寻找图像二阶导数零穿越来寻找边界,通常是Laplacian过零点或者非线性差分表示的过零点。
1.2拉普拉斯算子拉式算子是一个刻画图像灰度的二阶商算子,它是点、线、边界提取算子,亦称为边界提取算子。
通常图像和对他实施拉式算子后的结果组合后产生一个锐化图像。
拉式算子用来改善因扩散效应的模糊特别有效,因为它符合降制模型。
扩散效应是成像过程中经常发生的现象。
拉普拉斯算子也是最简单的各向同性微分算子,具有旋转不变性。
一个二维图像函数的拉普拉斯变换是各向同性的二阶导数,定义(1)为了更适合于数字图像处理,将拉式算子表示为离散形式:(2)另外,拉普拉斯算子还可以表示成模板的形式,如下图(1)所示,为离散拉普拉斯算子的模板,图(2)表示其扩展模板。
图(1) 图(2)从模板形式容易看出,如果在图像中一个较暗的区域中出现了一个亮点,那么用拉普拉斯运算就会使这个亮点变得更亮。
因为图像中的边缘就是那些灰度发生跳变的区域,所以拉普拉斯锐化模板在边缘检测中很有用。
一般增强技术对于陡峭的边缘和缓慢变化的边缘很难确定其边缘线的位置。
但此算子却可用二次微分正峰和负峰之间的过零点来确定,对孤立点或端点更为敏感,因此特别适用于以突出图像中的孤立点、孤立线或线端点为目的的场合。
同梯度算子一样,拉普拉斯算子也会增强图像中的噪声,有时用拉普拉斯算子进行边缘检测时,可将图像先进行平滑处理。
1.3 Prewitt 算子(平均差分法)因为平均能减少或消除噪声,Prewitt 梯度算子法就是先求平均,再求差分来求梯度。
水平和垂直梯度模板分别为:利用检测模板可求得水平和垂直方向的梯度,再通过梯度合成和边缘点判定,就可得到平均差分法的检测结果。
1.4 Sobel 算子 (加权平均差分法)Sobel 算子是典型的基于一阶导数的边缘检测算子,由于该算子中引入了类似局部平均的运算,因此对噪声具有平滑作用,能很好的消除噪声的影响。
Sobel 算子包含两组3x3的矩阵,分别为横向及纵向模板,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。
实际使用中,常用如下两个模板来检测图像边缘。
-1 0 1 -2 0 2 -1 0 1图3 Sobel 算子单独使用Sobel 算子做边缘检测,边缘定位精度不高,有时还可能对非边缘像素的响应大于某些边缘处的响应或者响应差别不是很大,造成漏检或误检,但是它对噪声具有较好的鲁棒性。
1 2 1 0 0 0 -1-2-1Prewitt算子和Sobel算子提取边缘的结果差不多。
在提取边缘的同时它对噪声具有平滑作用,能够抑制一定的噪声。
由于Prewitt边缘检测算子是通过八个方向模板对图像进行卷积运算,因此运算量比较大。
二、程序代码2.1拉普拉斯算子程序代码:(1)I=imread('tire.tif');subplot(1,2,1);imshow(I);title('原始图像');I=double(I);H=[0 -1 0-1 5 -10 -1 0];J=conv2(I,H,'same');subplot(1,2,2);imshow(J,[]);title('拉普拉斯算子增强图像');(2) I=imread('D:\照片\图片11.jpg');[H,W]=size(I);M=double(I);J=M;for i=2:H-1for j=2:W-1J(i,j)=4*M(i,j)-[M(i+1,j)+M(i-1,j)+M(i,j+1)+M(i,j-1)];end;end;subplot(1,2,1);imshow(I);title('原图');subplot(1,2,2);imshow(uint8(J));title('锐化处理后的图');2.2 Prewitt算子(平均差分法)[I,map]=imread('D:\图片\摄影作品\2.jpg ');[H,W]=size(I);M=double(I);J=M;for i=2:H-1for j=2:W-1J(i,j)=abs(M(i-1,j+1)-M(i-1,j-1)+M(i,j+1)-M(i,j-1)+M(i+1,j+1)-M(i+1,j-1))+abs(M (i+1,j-1)-M(i-1,j-1)+M(i+1,j)-M(i-1,j)+M(i+1,j+1)-M(i-1,j+1));end;end;subplot(1,2,1);imshow(I);title('原图');subplot(1,2,2);imshow(uint8(J));title('Prewitt处理后');2.3 Sobel算子[I,map]=imread('D:\图片\摄影作品\伤感.jpg ');[H,W]=size(I);M=double(I);J=M;for i=2:H-1for j=2:W-1J(i,j)=abs(M(i-1,j+1)-M(i-1,j-1)+2*M(i,j+1)-2*M(i,j-1)+M(i+1,j+1)-M(i+1,j-1))+a bs(M(i-1,j-1)-M(i+1,j-1)+2*M(i-1,j)-2*M(i+1,j)+M(i-1,j+1)-M(i+1,j+1));end;end;subplot(1,2,1);imshow(I);title('原图');subplot(1,2,2);imshow(uint8(J));title('Sobel 处理后');三、图片处理结果1、拉普拉斯算子处理:(1)车轮图片拉式处理结果:(2)本人照片拉氏处理:2. Prewitt算子锐化结果:3.Sobel算子锐化结果:三、性能研究与结论laplace算子是与方向无光的各向同性边缘检测算子,若只关心边缘点的位置而不顾其周围的实际灰度差时,一般选择该算子进行检测.特点:各向同性,线性和位移是不变的,对线性和孤立点检测效果好,但边缘方向信息丢失,常产生双像素的边缘,对噪声有双倍的加强作用。
prewitt算子为在检测边缘的同时减少噪声的影响,从加大边缘检测算子的模板大小出发,由2*2扩大到3*3来计算差分算子,采用prewitt算子能检测到边缘点,还可以抑制噪声。
sobel算子在prewitt算子基础上能检测边缘点,且能进一步抑制噪声的影响,但检测的边缘较宽。
梯度算子和laplacian算子都对噪声敏感,因此一般用它们检测边缘前要先对图像进行平滑。
四、个人总结通过本次作业的学习与完成实践过程,我了解到了之前听老师课堂上讲的一阶二阶微分算子,但是具体包括哪些也不是很清楚,在完成本次作业过程中了解到一阶微分算子也就是梯度算子,它包括本次论文我用到的prewitt算子和sobel算子。
二阶微分算子呢,也就是拉普拉斯算子,通过么MATLAB软件的读图像以及对图像的处理,主要利用matlab程序的编写及验证看最终图像呈现的效果,进而对比得出它们各自性能的研究对比。
经过拉普拉斯算子的处理,图像模糊近乎成虚像的形式,边缘信息大量丢失;Prewitt 算子将图像边缘拉大,近乎失真;sobel算子处理后也只是轮廓,相比Prewitt算子图像边缘稍微加宽。
参考文献:[1] MATLAB7.X图像处理M.何兴华,周媛媛.人民邮电出版社:北京,2006,72-73.[2] 数字图像处理M.阮秋琦.电子工业出版社:北京,2005,12-14.[3] MATLAB函数速查手册M.邓微.人民邮电出版社:北京,2008,23-24.。