实验报告四图像锐化处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告四
姓名:学号:班级:
实验日期: 2016.5.10 实验成绩:
一.实验目的
(1)学习如何用锐化处理技术来加强图像的目标边界和图像细节,对图像进行梯度算子、拉普拉斯算子、Sobel算子设计,使图
像的某些特征(如边缘、轮廓等)得以进一步的增强及突出。(2)分析模板大小对空域锐化滤波的影响,比较不同滤波器的处理效果,分析其优缺点。
二.实验原理
锐化处理的主要目的是突出灰度的过度部分,在空间域中,均值滤波类似于积分,那锐化滤波类似于微分,微分算子的响应程度与图像在用算子操作的这一点突变程度成正比,图像积分模糊了图像,同时起到了消除噪声的作用;图像微分增强边缘和其它突变(如噪声),而削弱灰度变换缓慢的区域,laplacian算子类似于二阶微分,强调的是图像灰度级剧烈变换的部分,而sobel算子类似于一阶微分,强调的是图像灰度级缓慢变化的部分。
三.实验内容及结果
(1)选择一副图像i_texture2.bmp,分别使用拉普拉斯算子、sobel 算子对图像进行锐化滤波,并观察滤波效果。
图 1 laplacian及sobel算子处理图像
(2)选择一副图像i_texture2.bmp,构造一个中心系数为-24的5×5的类似于拉普拉斯模板对图像进行锐化,与上述拉普拉斯算子的结果相比,是否能得到更加清晰的结果?
图 2 不同大小laplacian模板处理原图及二值图
四.结果分析
(1)观察图一,可以发现对原图进行sobel算子运算后,原图阶梯的边缘细节被突显出来了,而每个阶梯灰度级保持不变的背景则没了,全变黑了,而对原图进行laplacian算子运算后,边缘部分则只剩下些杂乱无章的点了,基本是在sobel算子运算过后筛选出来的缓慢突变边缘上的一些突变更快的点。如果把sobel算子比作是一阶微分就不难理解它是对原图的缓慢边缘变化部分,而把laplacian算子比作是二阶微分的话,就是原图的剧烈突变部分,由于原图像的阶梯边缘在灰度级上是缓慢过度的,所以使用sobel算子边缘的突出效果更明显,而laplacian算子无论模板大小为多大,都不能清晰的显示出边缘。至于背景为什么会变黑是因为算子模板中有负因子,当计算的出来的值为负数时,自动标定其为0,也就是黑色。
(2)观察图二,可以发现对原图使用无论多大的laplacian模板,效果都很差,原因就是上述提到的原图像的边缘灰度级是缓慢变化的,对原图灰度级二值化处理,由于灰度值大小只有0和1两个值,阶梯边缘两边的值分别为0和1,这样边缘突变就成了一个单位的剧烈突变,所以3*3的laplacian算子效果就和上述的sobel算子效果相似,而当增加laplacian算子的大小到5*5时,边缘检测效果更加明显。正印证了微分算子的响应程度与图像在用算子操作的这一点突变程度成正比这一原理。
五、实验总结
本次实验主要是进一步加深fspecial构造算子模板的功能以及imfilter滤波函数的运用,本次实验比较简单,主要就是体会一下两种算子对图像锐化的作用,感受sobel算子和laplacian算子对边缘检测的作用。
附录(程序)
A=imread('F:\数字图像处理\图片\i_texture2.bmp');
thresh=graythresh(A);%使用最大类间方差法找到图片的一个合适的阈值(thresh)
B=im2bw(A,thresh);%二值图
h1=fspecial('laplacian');%拉普拉斯算子,模板默认大小为3*3
h2=fspecial('sobel');%sobel算子,模板默认大小为3*3
h3=zeros(5,5);%先构造模板大小规格为5*5
for i=1:5
for j=1:5
if(i==3&j==3)
h3(i,j)=-24;%模板中间元素为-24
else
h3(i,j)=1;%模板其它元素为1
end
end
end
A1=imfilter(A,h1);
A2=imfilter(A,h2);
A3=imfilter(A,h3);
A4=imfilter(B,h1);
A5=imfilter(B,h3);
subplot(2,2,1);imshow(A);title('原图');
subplot(2,2,2);imshow(A1);title('laplacian3*3');
subplot(2,2,3);imshow(A2);title('sobel3*3');
hold on;
figure;
subplot(2,3,1);imshow(A);title('原图');
subplot(2,3,2);imshow(A1);title('原图laplacian3*3');
subplot(2,3,3);imshow(A3);title('原图laplacian5*5');
subplot(2,3,4);imshow(B);title('二值图');
subplot(2,3,5);imshow(A4);title('二值图laplacian3*3'); subplot(2,3,6);imshow(A5);title('二值图laplacian5*5');