Matlab图像处理系列——空间域图像增强之图像锐化

微信公众号上线,搜索公众号小灰灰的FPGA,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等
在这里插入图片描述
本节目录

一、图像锐化
二、一阶导数——梯度算子
1、Robert交叉梯度
2、Robert交叉梯度的Matlab仿真
3、Sobel梯度
4、 Sobel梯度的Matlab仿真
三、二阶微分——拉普拉斯算子Laplacian
1、拉普拉斯算子概念
2、拉普拉斯算子的Matlab仿真
四、高斯-拉普拉斯变换(Laplacian of a Gaussian,LoG)
1、高斯-拉普拉斯变换概念
2、高斯-拉普拉斯变换的Matlab仿真
五、Matlab仿真源码
1、Robert交叉梯度的Matlab仿真源码
2、Sobel梯度的Matlab仿真源码
3、拉普拉斯算子的Matlab仿真源码
4、高斯-拉普拉斯变换的Matlab仿真源码

本节内容
一、图像锐化

图像锐化,是使模糊的图像变得更加清晰。主要用于增强图像的灰度跳变部分,与图像平滑对灰度跳变的抑制正好相反。锐化是通过对平滑逆运算导数或者有限差分来实现。
二、一阶导数——梯度算子
梯度定义,对于连续的二维函数f(x,y),其在点(x,y)处的梯度是二维列向量:
在这里插入图片描述

梯度的方向就是函数f(x,y)最大变换率的方向;
梯度的幅值作为变化率大小的度量。
1、Robert交叉梯度
Robert交叉梯度对应的模板,w1对接近45°边缘有较强响应;w2对接近-45°边缘有较强响应。
在这里插入图片描述
2、Robert交叉梯度的Matlab仿真
在这里插入图片描述

3、Sobel梯度
Sobel梯度对应的模板
在这里插入图片描述

4、 Sobel梯度的Matlab仿真
在这里插入图片描述

三、二阶微分——拉普拉斯算子Laplacian
1、拉普拉斯算子概念

二维函数f(x,y)的二阶微分(拉普拉斯算子)定义为:
在这里插入图片描述

对于离散的二维图像f(i,j),用于图像锐化的拉普拉斯算子
在这里插入图片描述
在这里插入图片描述

对应的滤波模板:
W1=[0 1 0;1 -4 1; 0 1 0]
绝对值相同的正值和负值实际上表示相同的响应,则滤波模板为:
W2=[0 -1 0;-1 4 -1; 0 -1 0]
模板对于90°的旋转是各向同性,把原图像旋转该角度后再进行滤波与对原图像滤波再旋转该角度结果相同,故可以使用45°旋转各向同性的滤波器:
W3=[1 1 1;1 -8 1; 1 1 1]
W4=[-1 -1 -1;-1 8 -1; -1 -1- 1]
利用高斯平滑滤波思想,根据到中心点的距离给模板周边的点赋予不同的权重:
W5=[1 4 1;4 -20 4; 1 4 1]
2、拉普拉斯算子的Matlab仿真
Matlab仿真不同拉普拉斯算子模板的滤波效果
在这里插入图片描述

四、高斯-拉普拉斯变换(Laplacian of a Gaussian,LoG)
1、高斯-拉普拉斯变换概念

通常,为了取得更好的锐化效果,同时把噪声的干扰降低最低,可以先对带有噪声的原始图像进行平滑滤波,然后再进行锐化增强边缘和细节。将在平滑领域工作的更好的高斯平滑算子同锐化界表现突出的拉普拉斯锐化结合起来,就得到了所谓的高斯-拉普拉斯变换。
高斯型函数模型,其中r2=x2+y^2,且σ为标准差。
在这里插入图片描述

图像经高斯函数滤波产生平滑效应,平滑程度由σ决定,之后计算拉普拉斯算子,也就是得到所谓的高斯-拉普拉斯算子:
在这里插入图片描述

2、高斯-拉普拉斯变换的Matlab仿真
Matlab实现拉普拉斯算子和高斯-拉普拉斯算子仿真。
在这里插入图片描述

五、Matlab仿真源码
1、Robert交叉梯度的Matlab仿真源码

clear all;
clc;
close all;
%读取图像
I=imread('leno_old.png');
I1=rgb2gray(I);
%转化为double型,保存负值
I2=double(I1);
%Robert交叉梯度
w1=[-1 0;0 1];
w2=[0 -1;1 0];
%以重复方式填充边界
B1=imfilter(I2,w1,'corr','replicate');
B2=imfilter(I2,w2,'corr','replicate');
B3=abs(B1)+abs(B2);
subplot(2,2,1);
imshow(I1);
title('原图');
subplot(2,2,2);
imshow(B1);
title('以重复方式填充边界图像B1');
subplot(2,2,3);
imshow(B2);
title('以重复方式填充边界图像B2');
subplot(2,2,4);
imshow(B3);
title('Robert交叉梯度图像B3');

2、Sobel梯度的Matlab仿真源码

clear all;
clc;
close all;
%读取图像
I=imread('leno_old.png');
I1=rgb2gray(I);
%转化为double型,保存负值
I2=double(I1);
%Sobel梯度
w1=[-1 -2 -1;0 0 0;1 2 1];
w2=[-1 0 1;-2 0 2;-1 0 1];
%以重复方式填充边界
B1=imfilter(I2,w1,'corr','replicate');
B2=imfilter(I2,w2,'corr','replicate');
B3=abs(B1)+abs(B2);
subplot(2,2,1);
imshow(I1);
title('原图');
subplot(2,2,2);
imshow(B1);
title('以重复方式填充边界图像B1');
subplot(2,2,3);
imshow(B2);
title('以重复方式填充边界图像B2');
subplot(2,2,4);
imshow(B3);
title('Sobel梯度图像B3');

3、拉普拉斯算子的Matlab仿真源码

clear all;
clc;
close all;
%读取图像
I=imread('leno_old.png');
I1=rgb2gray(I);
%转化为double型,保存负值
I2=double(I1);
%拉普拉斯算子模板
w1=[0 -1 -0;-1 4 -1;0 -1 0];
w2=[-1 -1 -1;-1 8 -1;-1 -1 -1];
w3=[1 4 1;4 -20 4;1 4 1];
%以重复方式填充边界
B1=imfilter(I2,w1,'corr','replicate');
B2=imfilter(I2,w2,'corr','replicate');
B3=imfilter(I2,w3,'corr','replicate');
subplot(2,2,1);
imshow(I1);
title('原图');
subplot(2,2,2);
imshow(B1);
title('拉普拉斯算子模板1图像B1');
subplot(2,2,3);
imshow(B2);
title('拉普拉斯算子模板2图像B2');
subplot(2,2,4);
imshow(B3);
title('拉普拉斯算子模板3图像B3');

4、高斯-拉普拉斯变换的Matlab仿真源码

clear all;
clc;
close all;
%读取图像
I=imread('leno_old.png');
I1=rgb2gray(I);
%转化为double型,保存负值
I2=double(I1);
%拉普拉斯算子模板
w1=[-1 -1 -1;-1 8 -1;-1 -1 -1];
B1=imfilter(I2,w1,'corr','replicate');
B1=uint8(abs(B1));
%大小为5,σ为0.5的LoG算子
w2=fspecial('log',5,0.5);
B2=imfilter(I2,w2,'corr','replicate');
%大小为5,σ为2的LoG算子
w3=fspecial('log',5,2);
B3=imfilter(I2,w3,'corr','replicate');
subplot(2,2,1);
imshow(I1);
title('原图');
subplot(2,2,2);
imshow(B1);
title('拉普拉斯算子模板图像B1');
subplot(2,2,3);
imshow(B2);
title('σ为0.5的LoG算子图像B2');
subplot(2,2,4);
imshow(B3);
title('σ为2的LoG算子图像B3');
  • 14
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小灰灰的FPGA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值