图像处理中调用matlab自带均值滤波、高斯滤波和中值滤波函数的案例以及自编均值滤波的案例。
生活随笔
收集整理的這篇文章主要介紹了
图像处理中调用matlab自带均值滤波、高斯滤波和中值滤波函数的案例以及自编均值滤波的案例。
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
@[TOC](利用matlab自帶均值濾波器的代碼,分別對一幅圖像實現(xiàn)3*3,5*5,7*7,9*9的均值濾波,并對實驗結(jié)果進(jìn)行分析。)
@[TOC](分別給干凈圖像添加高斯和椒鹽噪聲,然后進(jìn)行均值濾波、高斯濾波和中值濾波,并對實現(xiàn)結(jié)果進(jìn)行分析。)
@[TOC](自編均值濾波器對一幅圖像實現(xiàn)填充后,并完成3*3,5*5,7*7,9*9,11*11的均值濾波并對實驗結(jié)果進(jìn)行分析。)
題目一:
1、題目詳情:利用matlab自帶均值濾波器的代碼,分別對一幅圖像實現(xiàn)3*3,5*5,7*7,9*9的均值濾波,并對實驗結(jié)果進(jìn)行分析。
2、代碼:?
% 讀入圖像 Image = imread('C:\Users\HUAWEI\Desktop\A計協(xié)\1大三重點\數(shù)字圖像處理\數(shù)字圖像處理第二次上機\lena.bmp');% 設(shè)置均值濾波 H3 = fspecial('average',[3,3]); H5 = fspecial('average',[5,5]); H7 = fspecial('average',[7,7]); H9 = fspecial('average',[9,9]);% 利用濾波對圖像進(jìn)行處理 r3 = imfilter(Image,H3); r5 = imfilter(Image,H5); r7 = imfilter(Image,H7); r9 = imfilter(Image,H9);% 展示結(jié)果 subplot(2,3,1);imshow(Image);title('原圖'); subplot(2,3,2);imshow(r3);title('3*3均值濾波結(jié)果'); subplot(2,3,3);imshow(r5);title('5*5均值濾波結(jié)果'); subplot(2,3,4);imshow(r7);title('7*7均值濾波結(jié)果'); subplot(2,3,5);imshow(r9);title('9*9均值濾波結(jié)果');3、運行結(jié)果 :
4、結(jié)論分析:均值濾波半徑越大,處理結(jié)果越模糊。
題目二:
1、題目詳情:分別給干凈圖像添加高斯和椒鹽噪聲,然后進(jìn)行均值濾波、高斯濾波和中值濾波,并對實現(xiàn)結(jié)果進(jìn)行分析。
2、代碼:
% 讀入圖像 Image = imread('C:\Users\HUAWEI\Desktop\A計協(xié)\1大三重點\數(shù)字圖像處理\數(shù)字圖像處理第二次上機\lena.bmp');% 給原圖加入高斯噪聲 GaussainI = imnoise(Image,'gaussian');% 給原圖加入椒鹽噪聲 SaltPepperI = imnoise(Image,'salt & pepper');% 設(shè)置均值濾波 aveFilter3 = fspecial('average',[3,3]);% 設(shè)置高斯濾波 gausFilter3 = fspecial('gaussian',[3,3],0.8);tempG=rgb2gray(GaussainI); %灰度處理,灰度處理后的圖像是二維矩陣 tempSP=rgb2gray(SaltPepperI);% 用均值濾波對高斯噪聲圖像進(jìn)行處理 GJ = imfilter(GaussainI,aveFilter3);% 用高斯濾波對高斯噪聲圖像進(jìn)行處理 GG = imfilter(GaussainI,gausFilter3,'conv');% 用中值濾波對高斯圖像進(jìn)行處理 GM = medfilt2(tempG,[3,3]);% 用均值濾波對椒鹽噪聲圖像進(jìn)行處理 SPJ = imfilter(SaltPepperI,aveFilter3);% 用高斯濾波對椒鹽噪聲圖像進(jìn)行處理 SPG = imfilter(SaltPepperI,gausFilter3,'conv');% 用中值濾波對椒鹽噪聲圖像進(jìn)行處理 SPM = medfilt2(tempSP,[3,3]);%展示結(jié)果 subplot(3,3,1);imshow(Image);title('原圖'); subplot(3,3,2);imshow(GaussainI);title('添加高斯噪聲后的圖像'); subplot(3,3,3);imshow(SaltPepperI);title('添加椒鹽噪聲后的圖像'); subplot(3,3,4);imshow(GJ);title('高斯噪聲經(jīng)均值濾波處理后'); subplot(3,3,5);imshow(GG);title('高斯噪聲經(jīng)高斯濾波處理后'); subplot(3,3,6);imshow(GM);title('高斯噪聲經(jīng)中值濾波處理后'); subplot(3,3,7);imshow(SPJ);title('椒鹽噪聲經(jīng)均值濾波處理后'); subplot(3,3,8);imshow(SPG);title('椒鹽噪聲經(jīng)高斯濾波處理后'); subplot(3,3,9);imshow(SPM);title('椒鹽噪聲經(jīng)中值濾波處理后');?3、運行結(jié)果:
?4、結(jié)論分析:含高斯噪聲的圖像用高斯濾波處理時效果好,含椒鹽噪聲的圖像用中值濾波處理時效果好。
題目三:
1、題目詳情:自編均值濾波器對一幅圖像實現(xiàn)填充后,并完成3*3,5*5,7*7,9*9,11*11的均值濾波并對實驗結(jié)果進(jìn)行分析。
2、代碼:
% 讀入圖像,并進(jìn)行灰度處理,灰度處理后的圖像是二維矩陣 Image = rgb2gray(imread('C:\Users\HUAWEI\Desktop\A計協(xié)\1大三重點\數(shù)字圖像處理\數(shù)字圖像處理第二次上機\lena.bmp'));% 給圖像添加高斯噪聲 GaussainI=imnoise(Image,'gaussian');%使用matlab自帶的均值濾波對高斯噪聲圖像進(jìn)行處理,用于后面與自編均值濾波函數(shù)的效果對比 H3 = fspecial('average',[3,3]); b3 = imfilter(GaussainI,H3);% 獲取圖像二維矩陣的高和寬 [h,w]=size(GaussainI);% 設(shè)置均值濾波處理的半徑,半徑為1對應(yīng)3*3均值濾波,半徑為2對應(yīng)5*5均值濾波... r3 = 1; r5 = 2; r7 = 3; r9 = 4; r11 = 5;% 建新矩陣用于保存處理后的結(jié)果 matrix3 = zeros(h,w); matrix5 = zeros(h,w); matrix7 = zeros(h,w); matrix9 = zeros(h,w); matrix11 = zeros(h,w);% 擴展要被處理的圖像,留出充足的處理空間 matrix3Plus=zeros(h+2*r3,w+2*r3); matrix3Plus(r3+1:h+r3,r3+1:w+r3)=GaussainI; matrix5Plus = zeros(h+2*r5,w+2*r5); matrix5Plus(r5+1:h+r5,r5+1:w+r5) = GaussainI; matrix7Plus = zeros(h+2*r7,w+2*r7); matrix7Plus(r7+1:h+r7,r7+1:w+r7)=GaussainI; matrix9Plus = zeros(h+2*r9,w+2*r9); matrix9Plus(r9+1:h+r9,r9+1:w+r9)=GaussainI; matrix11Plus = zeros(h+2*r11,w+2*r11); matrix11Plus(r11+1:h+r11,r11+1:w+r11)=GaussainI;%自編算法實現(xiàn)均值濾波處理 %除開邊界,要處理的是2到4 for x=r3+1:h+r3for y=r3+1:w+r3new_r=x-r3;new_c=y-r3;value=0;for i=1:2*r3+1for j=1:2*r3+1 %每一個被處理的點,處理后的值,為該點高斯函數(shù)的值乘以該點周圍(3*3)范圍的加和value=value+(matrix3Plus(new_r+i-1,new_c+j-1));endend%將對應(yīng)位置的結(jié)果保存matrix3(x,y)=value/((r3*2+1)*(r3*2+1));end endfor x=r5+1:h+r5for y=r5+1:w+r5new_r=x-r5;new_c=y-r5;value=0for i=1:2*r5+1for j=1:2*r5+1value=value+(matrix5Plus(new_r+i-1,new_c+j-1));endendmatrix5(x,y)=value/((r5*2+1)*(r5*2+1));end endfor x=r5+1:h+r5for y=r5+1:w+r5new_r=x-r5;new_c=y-r5;value=0for i=1:2*r5+1for j=1:2*r5+1value=value+(matrix5Plus(new_r+i-1,new_c+j-1));endendmatrix5(x,y)=value/((r5*2+1)*(r5*2+1));end endfor x=r7+1:h+r7for y=r7+1:w+r7new_r=x-r7;new_c=y-r7;value=0for i=1:2*r7+1for j=1:2*r7+1value=value+(matrix7Plus(new_r+i-1,new_c+j-1));endendmatrix7(x,y)=value/((r7*2+1)*(r7*2+1));end endfor x=r9+1:h+r9for y=r9+1:w+r9new_r=x-r9;new_c=y-r9;value=0for i=1:2*r9+1for j=1:2*r9+1value=value+(matrix9Plus(new_r+i-1,new_c+j-1));endendmatrix9(x,y)=value/((r9*2+1)*(r9*2+1));end endfor x=r11+1:h+r11for y=r11+1:w+r11new_r=x-r11;new_c=y-r11;value=0for i=1:2*r11+1for j=1:2*r11+1value=value+(matrix11Plus(new_r+i-1,new_c+j-1));endendmatrix11(x,y)=value/((r11*2+1)*(r11*2+1));end end%展示結(jié)果 subplot(3,3,1);imshow(Image);title('原圖'); subplot(3,3,2);imshow(GaussainI);title('添加高斯噪聲后'); subplot(3,3,3);imshow(b3);title('matlab自帶均值濾波3*3濾波處理后'); subplot(3,3,4);imshow(uint8(matrix3));title('自編3*3均值濾波處理后'); subplot(3,3,5);imshow(uint8(matrix5));title('自編5*5均值濾波處理后'); subplot(3,3,6);imshow(uint8(matrix7));title('自編7*7均值濾波處理后'); subplot(3,3,7);imshow(uint8(matrix9));title('自編9*9均值濾波處理后'); subplot(3,3,8);imshow(uint8(matrix11));title('自編11*11均值濾波處理后');3、運行結(jié)果:?
4、結(jié)論分析:自編均值濾波和matlab均值濾波函數(shù)對噪聲的處理效果可達(dá)到一致,濾波使用的鄰域半徑越大,邊緣模糊越厲害。
總結(jié)
以上是生活随笔為你收集整理的图像处理中调用matlab自带均值滤波、高斯滤波和中值滤波函数的案例以及自编均值滤波的案例。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何下载外文文献
- 下一篇: 公司年会不知道送什么?2021平价高颜值