Matlab数字图像处理尝试之:[8]锐化

2025-09-27 16:35:33

1、 

1),线性锐化滤波:

clear all;

 I=imread('C:\Users\zjy\Desktop\test1.tif');

subplot(1,2,1),imshow(I);

 xlabel('a)原始图像');

>> I=double(I);

>> H=[0 1 0,1 -41,0 1 0];

>> J=conv2(I,H,'same');

>> K=I-J;

>>subplot(1,2,2),imshow(K,[]);

>>  xlabel('b)锐化滤波处理');

以上程序段实现了用线性锐化滤波对图像进行锐化滤波处理,运行程序后的效果如下图所示。

Matlab数字图像处理尝试之:[8]锐化

2、 

由图可见,图像模糊的部分得到了锐化,边缘部分得到了增强,边界更加明显。但图像显示清楚的地方,经滤波后发生了失真,这也是拉氏算子增强的一大缺点。

3、 

2),Sobel算子锐化处理:

clear all;

 I=imread('C:\Users\zjy\Desktop\test1.tif');

subplot(1,2,1),imshow(I);

 xlabel('a)原始图像');

>>H=fspecial('sobel');

>>J=filter2(H,I);

>>  subplot(1,2,2),imshow(J);

 xlabel('b)Sobel锐化滤波处理');

以上程序段实现了用Sobel算子锐化滤波对图像进行锐化滤波处理,运行程序后的效果如下图所示。

Matlab数字图像处理尝试之:[8]锐化

4、 

Sobel算子的特点是对称的一阶差分,对中心加权具有一定的平滑作用。

5、 

3),梯度法锐化:

clear all;

 [I,map]=imread('C:\Users\zjy\Desktop\test1.tif');

subplot(2,2,1),imshow(I);

 xlabel('a)原始图像');

I=double(I);

>>[IX,IY]=gradient(I);

>>gm=sqrt(IX.*IX+IY.*IY);

>> out1=gm;

>>  subplot(2,2,2),imshow(out1,map);

>>  xlabel('b)梯度值');

>> out2=I;

>>J=find(gm>=15);

>>out2(J)=gm(J);

>>  subplot(2,2,3),imshow(out2,map);

 xlabel('c)加阀值梯度值');

>> out3=I;

>>  J=find(gm>=20);

>> out3(J)=255;

>>  K=find(gm<20);

out3(K)=0;

>>  subplot(2,2,4),imshow(out3,map);

 xlabel('d)二值化');

以上程序段实现了用梯度法锐化滤波对图像进行锐化滤波处理,运行程序后的效果如下图所示。

Matlab数字图像处理尝试之:[8]锐化

6、 

可以看出,几种输出方法的效果不一样。直接梯度输出背景和图像目标不是很清楚,阀值梯度输出可以消除背景的影响,而二值图像输出强化的是边缘效果。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢