目录
梯度锐化法
图像锐化最常用的是梯度法。对于图像f(x,y),在(x,y)处梯度定义为
梯度是一个向量,其大小和方向分别为
梯度变换方向是f(x,y)在该点灰度变换率最大的方向。
离散图像处理常用到梯度的大小,因此把梯度的大小简称为"梯度"。并且一阶偏导数采用一阶差分近似表示,即
为简化梯度计算,常使用近似表达式
或
对于一幅图像中突出的边缘区,其梯度值较大;对于平滑区,梯度值较小;对于灰度值为常数的区域,梯度为零。
除梯度算子外,还可以采用Roberts,Prewitt和Sobel算子计算梯度,来增强边缘。
Roberts算子
-1 | |
1 |
-1 | |
1 |
差分计算式:
Prewitt算子
在锐化边缘的同时减少噪声的影响,Prewitt从加大边缘增强算子的模板出发,由2*2扩大到3*3来计算差分
-1 | 0 | 1 |
-1 | 0 | 1 |
-1 | 0 | 1 |
-1 | -1 | -1 |
0 | 0 | 0 |
1 | 1 | 1 |
Sobel算子
Sobel在Prewitt算子的基础上,对4-邻域采用加权的方法计算差分,对应的模板如下
-1 | 0 | 1 |
-2 | 0 | 2 |
-1 | 0 | 1 |
-1 | 2 | 1 |
0 | 0 | 0 |
1 | 2 | 1 |
根据梯度计算近似表达式可以计算Roberts,Prewitt,Sobel梯度。一旦梯度算出就可以根据需要生成 不同的增强图像。
第一种增强:(g(x,y)为各点灰度,下同)
g(x,y)=grad(x,y)
缺点:仅显示梯度变化比较陡的边缘轮廓,灰度变化平缓或均匀的地方呈现黑色。
第二种增强:
T是一个非负的阈值,适当性选取可以使边缘突出,且不会破坏灰度比较平缓的背景。
第三种增强:
使根据需要指定的一个灰度级,它将明显边缘用固定的灰度级
表示。
第四种增强:
此方法用一个固定的灰度表示,便于研究边缘灰度的变化。
第五种增强:
生成二值图像,便于研究边缘所在的位置。
Laplacian增强算子
Laplacian算子是线性二阶微分算子。
对于离散的数字图像而言,二阶偏导数与二阶差分近似,由此可以推导出Laplacian算子表达式为:
Laplacian增强算子为
其特点如下:
(1)由于灰度均匀的区域或斜坡中间 为0,Laplacian增强算子不起作用
(2)在斜坡底或低灰度侧形成“下冲”;而在斜坡顶或高灰度侧形成“上冲”,说明Laplacian增强算子具有突出边缘的特点、
0 | -1 | 0 |
-1 | 5 | -1 |
0 | -1 | 0 |
效果图
matlab代码
I=imread('C:\Users\ASUS\Desktop\Digital image processing\photo\5ff2f784ee976a38221a0151c5a4e2a0.jpg');
I=rgb2gray(I);
I=im2double(I);
figure
subplot(3,2,1),imshow(I);title('原图片');%显示原图片
I=medfilt2(I);%第一次降噪滤波
subplot(3,2,2),imshow(I);title('3*3(默认)中值滤波');%显示中值滤波图像
I=histeq(I);%直方图均衡化以增加对比度
subplot(3,2,3),imshow(I);title('直方图均衡化后的图像');%显示直方图均衡化后的图像
I=medfilt2(I);%再进行一次滤波降噪
subplot(3,2,4),imshow(filter2(fspecial('sobel'),I,'same'));title('Sobel滤波图像');%显示Sobel滤波图像
subplot(3,2,5),imshow(filter2(fspecial('prewitt'),I,'same'));title('Prewitt滤波图像');%显示Prewitt滤波图像
subplot(3,2,6),imshow(filter2(fspecial('laplacian'),I,'same'));title('Laplacian滤波图像');%显示Laplacian滤波图像