多语言展示
当前在线:1534今日阅读:19今日分享:20

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

实现图像的锐化,分析结果,总结特点。
工具/原料

 Matlab软件

方法/步骤
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)锐化滤波处理');以上程序段实现了用线性锐化滤波对图像进行锐化滤波处理,运行程序后的效果如下图所示。

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算子锐化滤波对图像进行锐化滤波处理,运行程序后的效果如下图所示。

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)二值化');以上程序段实现了用梯度法锐化滤波对图像进行锐化滤波处理,运行程序后的效果如下图所示。

6

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

推荐信息