图像增强学习笔记(三) | 图像锐化

目录

梯度锐化法

Roberts算子

Prewitt算子

Sobel算子

Laplacian增强算子

效果图

matlab代码


梯度锐化法

图像锐化最常用的是梯度法。对于图像f(x,y),在(x,y)处梯度定义为

grad(x,y)=\begin{bmatrix} f_{x}'\\f_{y}' \end{bmatrix}=\begin{bmatrix} \frac{\partial f(x,y)}{\partial x}\\ \frac{\partial f(x,y)}{\partial y} \end{bmatrix}

梯度是一个向量,其大小和方向分别为

grad(x,y)=\sqrt{f_{x}'^{2}+f_{y}'^{2}}=\sqrt{(\frac{\partial f(x,y)}{\partial x})^{2}+(\frac{\partial f(x,y)}{\partial y})^{2}}

\theta =\sqrt{f_{y}'/f_{x}'}=\sqrt{\frac{\partial f(x,y)}{\partial y}/\frac{\partial f(x,y)}{\partial x}}

梯度变换方向是f(x,y)在该点灰度变换率最大的方向。

离散图像处理常用到梯度的大小,因此把梯度的大小简称为"梯度"。并且一阶偏导数采用一阶差分近似表示,即

f_{y}'=f(x,y+1)-f(x,y)

f_{x}'=f(x+1,y)-f(x,y)

为简化梯度计算,常使用近似表达式

grad(x,y)=max(\left | f_{x}' \right |,\left | f_{y}' \right |)

或     grad(x,y)=\left | f_{x}' \right |+\left | f_{y}' \right |

对于一幅图像中突出的边缘区,其梯度值较大;对于平滑区,梯度值较小;对于灰度值为常数的区域,梯度为零。

除梯度算子外,还可以采用Roberts,Prewitt和Sobel算子计算梯度,来增强边缘。

Roberts算子

-1
1
-1
1

 差分计算式:

f_{x}'=|f(x+1,y+1)-f(x,y)|

 f_{y}'=|f(x+1,y)-f(x,y+1)|

Prewitt算子

在锐化边缘的同时减少噪声的影响,Prewitt从加大边缘增强算子的模板出发,由2*2扩大到3*3来计算差分

-101
-101
-101
-1-1-1
000
111

Sobel算子

Sobel在Prewitt算子的基础上,对4-邻域采用加权的方法计算差分,对应的模板如下

-101
-202
-101
-121
000
121

根据梯度计算近似表达式可以计算Roberts,Prewitt,Sobel梯度。一旦梯度算出就可以根据需要生成 不同的增强图像。

第一种增强:(g(x,y)为各点灰度,下同)

g(x,y)=grad(x,y)

缺点:仅显示梯度变化比较陡的边缘轮廓,灰度变化平缓或均匀的地方呈现黑色。

第二种增强:

g(x,y)=\left\{\begin{matrix} grad(x,y), &grad(x,y)\geq T \\ f(x,y), &others \end{matrix}\right.

T是一个非负的阈值,适当性选取可以使边缘突出,且不会破坏灰度比较平缓的背景。

第三种增强:

g(x,y)=\left\{\begin{matrix} L_{G}, &grad(x,y)\geq T \\ f(x,y), &others \end{matrix}\right.

L_{G}使根据需要指定的一个灰度级,它将明显边缘用固定的灰度级L_{G}表示。

第四种增强:

g(x,y)=\left\{\begin{matrix} grad(x,y), &grad(x,y)\geq T \\ L_{B}, &others \end{matrix}\right.

此方法用一个固定的灰度L_{B}表示,便于研究边缘灰度的变化。

第五种增强:

g(x,y)=\left\{\begin{matrix} L_{G}, &grad(x,y)\geq T \\ L_{B}, &others \end{matrix}\right.

 生成二值图像,便于研究边缘所在的位置。

Laplacian增强算子

Laplacian算子是线性二阶微分算子。

\bigtriangledown ^{2}f(x,y)=\frac{\partial ^{2}f(x,y)}{\partial x^{2}}+\frac{\partial ^{2}f(x,y)}{\partial y^{2}}

对于离散的数字图像而言,二阶偏导数与二阶差分近似,由此可以推导出Laplacian算子表达式为:

\bigtriangledown ^{2}f(x,y)=f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)-4f(x,y)

Laplacian增强算子为

g(x,y)=f(x,y)-\bigtriangledown ^{2}f(x,y)

            =5f(x,y)-[f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)]

其特点如下:

(1)由于灰度均匀的区域或斜坡中间   \bigtriangledown ^{2}f(x,y)   为0,Laplacian增强算子不起作用

(2)在斜坡底或低灰度侧形成“下冲”;而在斜坡顶或高灰度侧形成“上冲”,说明Laplacian增强算子具有突出边缘的特点、

0-10
-15-1
0-10

效果图

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滤波图像

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值