实验2图像平滑实验一、实验目的1.通过实验掌握图像去噪的基本方法;2.学会根据情况选用不同方法。二、实验的硬件、软件平台硬件:计算机软件:操作系统:WINDOWS2000应用软件:MATLAB三、实验内容及要求1.实验内容请在如下面方法中选择多个,完成图像去噪操作,并进行分析、比较。(1)对静态场景的多幅图片取平均;(2)空间域模板卷积(不同模板、不同尺寸);(3)频域低通滤波器(不同滤波器模型、不同截止频率);(4)中值滤波方法。2.实验要求(1)图片可根据需要选取;(2)对不同方法和同一方法的不同参数的实验结果进行分析和比较,如空间域卷积模板可有高斯型模板、矩形模板、三角形模板和自己根据需求设计的模板等;模板大小可以是3×3,5×5,7×7或更大。频域滤波可采用矩形或巴特沃斯等低通滤波器模型,截止频率也是可选的。(3)分析比较不同方法的结果。四.实验内容1.图片的均值化处理程序:A1=imread('lenna_noise1.bmp');A2=imread('lenna_noise2.bmp');A3=imread('lenna_noise3.bmp');A4=imread('lenna_noise4.bmp');A5=imread('lenna_noise5.bmp');A6=imread('lenna_noise6.bmp');A7=imread('lenna_noise7.bmp');A8=imread('lenna_noise8.bmp');b1=double(A1/255);b2=double(A2/255);b3=double(A3/255);b4=double(A4/255);b5=double(A5/255);b6=double(A6/255);b7=double(A7/255);b8=double(A8/255);c=(b1+b2+b3+b4+b5+b6+b7+b8)/8;subplot(3,3,1);imshow(A1);title('1');subplot(3,3,2);imshow(A2);title('2');subplot(3,3,3);imshow(A3);title('3');subplot(3,3,4);imshow(A4);title('14');subplot(3,3,5);imshow(A5);title('5');subplot(3,3,1);imshow(A1);title('1');subplot(3,3,6);imshow(A6);title('6');subplot(3,3,7);imshow(A7);title('7');subplot(3,3,8);imshow(A8);title('8');subplot(3,3,9);imshow(c);title('9');分析:由于每张图片的噪点的分布是不一样的,所以将每张图片的值相加,再求平均值,这样噪点就会相互抵消,使得最后的图片稍微清晰。图片的平滑处理A=imread('noise1.bmp');%读取图片A1=medfilt2(A,[3,3]);¨%中值滤波模板大小[3.3]A2=ordfilt2(A,8,ones(4,4));%顺序滤波模板大小【4.4】h=fspecial('average');%均值滤波A3=filter2(h,A);%卷积A3=uint8(A3);j=fspecial('gaussian');%高斯滤波A4=filter2(j,A);A4=uint8(A4);subplot(2,3,1);imshow(A);title('原图');subplot(2,3,2);imshow(A1);title('中值滤波');subplot(2,3,3);imshow(A2);title('顺序滤波');subplot(2,3,4);imshow(A3);title('均值滤波');subplot(2,3,5);imshow(A4);title('高斯滤波');程序分析:1从原图的图片中可以看到,原图噪点很多,第二幅图片是利用了中值滤波处理A1=medfilt2(A,[3,3]);¨含义是将图片划分成多个[3,3]的矩阵,取其中的中间值代替里面的所有元素。由于噪点的值与图片的值差距很大,所以划分[3.3]矩阵取中值处理后,大部分的噪点值将被中值取缔。所以可以达到平滑图像和去除噪点的功能。2.顺序滤波处理:A2=ordfilt2(A,8,ones(4,4));将图片划分成很多个[4,4]的矩阵,让后讲里面的值进行排序,一共有十六个值,取排第8位值,然后用那个值代替矩阵里面所有的值,其实等同于A1=medfilt2(A,[4,4]);的中值排序,因为A1=medfilt2(A,[3,3]);比A2=ordfilt2(A,8,ones(4,4));分的更细,所以滤波的效果图2比图3更好。低通滤波程序:低通滤波a=imread('noise.bmp');figure(4)subplot(2,4,1);imshow(a);b=fft2(double(a));subplot(2,4,2);imshow(abs(b),[]);title('傅里叶变换');c=log(1+abs(b));subplot(2,4,3);imshow(c,[]);d=fftshift(b)e=log(1+abs(d));subplot(2,4,4);imshow(e,[]);[m,n]=size(d);fori=1:256forj=1:256d1(i,j)=(1/(1+((i-128)^2+(j-128)^2)^0.4/10)^2)*d(i,j);end;end;fori=1:256forj=1:256d2(i,j)=(1/(1+((i-128)^2+(j-128)^2)^0.3/20)^2)*d(i,j);end;end;fori=1:256forj=1:256d3(i,j)=(1/(1+((i-128)^2+(j-128)^2)^0.3/50)^2)*d(i,j);end;end;fori=1:256forj=1:256d4(i,j)=(1/(1+((i-128)^2+(j-128)^2)^0.4/100)^2)*d(i,j);end;end;FF1=ifftshift(d1);FF2=ifftshift(d2);FF3=ifftshift(d3);FF4=ifftshift(d4);ff1=real(ifft2(FF1));ff2=real(ifft2(FF2));ff3=real(ifft2(FF3));ff4=real(ifft2(FF4));subplot(2,4,5);imshow(uint8(ff1));xlabel('截止频率10');subplot(2,4,6);imshow(uint8(ff2));xlabel('截止频率20');subplot(2,4,7);imshow(uint8(ff3));xlabel('截止频率50');subplot(2,4,8);imshow(uint8(ff4));xlabel('截止频率100');分析:第一幅图是原图,图2是傅里叶变换处理,图3是对图片进行压缩处理,图4是对图2进行了反傅里叶变换,变回原图,在进行压缩处理。从处理的结果看来,截止频率为50的处理结果更加清晰。因为图片的有效元素频率大部分低于50.所以滤波后图片不至于失真。五.思考题1.不同空间域卷积器模板的滤波效果有何不同?2.空间域卷积器模板的大小的滤波效果有何影响?3.用多幅图像代数平均的方法去噪对图像有何要求?4.不同频域滤波器的效果有何不同?答1:不同空间域卷积模板的滤波效果滤波的平滑程度不同,当空间域模板太小时,无法滤除噪点,当空间域模板太大时又会使得图像失真。答2:当空间域模板太小时,无法滤除噪点,当空间域模板太大时又会使得图像失真。答3:要求多幅图像的噪声点的分布不同,差别越大,效果越好答4:对于不同图而言,图像的频率高低也不一样,当滤波器的频率太低,远低于图像的大部分频率,虽然噪声滤除了,但是图像的大部分信息也被滤除。如果滤波器的滤波频率太高,虽然图像不至于失真,但是滤波效果不好。所以滤波器的截止频率尽量选择与图片的大部分有效元素频率相等的频率进行滤波,这样既可以滤除噪音,图片又不至于失真。