资源描述:
《数字图像处理-平均滤波与中值滤波(含MATLAB代码).docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数字图像处理实验二15生医一、实验内容产生教材104页题图4.18(右图)所示的二值图像(白为1,黑为0),编程实现习题4.18所要求的处理(3x3的平均滤波和中值滤波)功能(图像四周边界不考虑,处理结果按四舍五入仍取0或1),显示处理前后的图像,比较其异同。二、运行环境MATLABR2014a三、运行结果及分析1.四种不同的窗的3x3平均滤波①在MATLAB图形窗界面进行放大可以看出四者之间的差别:4领域与8邻域之间没有明显差别,但是加权与未加权之间的差别较为明显,体现在:加权后每个矩形块的四个尖角部分都被保留了下来(图像四周边界不
2、考虑),而未加权的尖角处黑色变为白色。②原因分析:加权后尖角处原来白色的点(1)进行计算3/5=0.6四舍五入后值为1,保持白色,原来黑色的点(0)进行计算2/5=0.4四舍五入后值为0,保持黑色;而未加权尖角处无论原来是黑色还是白色,进行计算2/4=0.5四舍五入后值为1,所以原先的黑色(0)也变成了白色(1)。③下图为放大后的截图:2.中值滤波与原图像的对比①在MATLAB图形窗界面进行放大后可观察出:使用3x3方形中值滤波模板的效果与4领域、8领域加权平均滤波的效果相同,每个矩形块的四个尖角部分都被保留了下来(图像四周边界不考虑
3、)。②原因分析:套用3x3方形中值滤波模板后,尖角处原来白色的点(1)在窗内1多于0,取中值后仍保持白色,原来黑色的点(0)在窗内0多于1,取中值后仍保持白色。③下图为放大后的截图:四、心得体会通过MATLAB编程更加理解了课后题的计算结果,直观地看出了黑白像素点灰度值变化前后的取值异同。同时,对MATLAB实现像素点灰度值的替换机理也有所掌握,比如后边附的程序中会提到的“%”标注的思考。五、具体程序%生成黑白块图像unit=zeros(64,64);f=zeros(256,256);fori=1:1:32forj=1:1:32uni
4、t(i,j)=1;%1/4白块endendfori=33:1:64forj=33:1:64unit(i,j)=1;%1/4白块endendfori=1:64:256forj=1:64:256f(i:i+63,j:j+63)=unit;endend%对原图像进行3x3平均滤波fori=2:1:255forj=2:1:255fave4(i,j)=(f(i-1,j)+f(i+1,j)+f(i,j-1)+f(i,j+1))/4;fave8(i,j)=(f(i-1,j-1)+f(i-1,j)+f(i-1,j+1)+f(i,j-1)+f(i,j+
5、1)+f(i+1,j-1)+f(i+1,j)+f(i+1,j+1))/8;fave4_weighted(i,j)=(f(i-1,j)+f(i+1,j)+f(i,j-1)+f(i,j+1)+f(i,j))/5;fave8_weighted(i,j)=(f(i-1,j-1)+f(i-1,j)+f(i-1,j+1)+f(i,j-1)+f(i,j+1)+f(i+1,j-1)+f(i+1,j)+f(i+1,j+1)+f(i,j))/9;endendfave4=round(fave4);%平均后灰度值有可能是小数,要取整fave8=round(f
6、ave8);fave4_weighted=round(fave4_weighted);fave8_weighted=round(fave8_weighted);subplot(2,2,1);imshow(fave4);title('4邻域平均滤波后图像');subplot(2,2,2);imshow(fave8);title('8邻域平均滤波后图像')subplot(2,2,3);imshow(fave4_weighted);title('4邻域加权平均滤波后图像')subplot(2,2,4);imshow(fave8_weight
7、ed);title('8邻域加权平均滤波后图像')%对原图像进行3x3方形中值滤波fori=2:1:255forj=2:1:255a=[f(i-1,j-1),f(i-1,j),f(i-1,j+1),f(i,j-1),f(i,j),f(i,j+1),f(i+1,j-1),f(i+1,j),f(i+1,j+1)];b=sort(a);%排序函数fmid(i,j)=b(5);%9个数排序的中值endendsubplot(1,2,1);imshow(f);title('原图像');subplot(1,2,2);imshow(fmid);tit
8、le('中值滤波后图像')