logo资料库

均值、高斯和中值去噪的matlab实现.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
均值、高斯和中值去噪的matlab实现实现 均值、高斯和中值去噪的 本文给大家分享了一个均值、高斯和中值去噪的matlab实现的源代码。 %实现去噪处理的三个小算法,并显示噪声图。 map1=imread('p.jpg'); [row,col,dep]=size(map1); %行,列,深度值 map=zeros(row,col); map=uint8(map); pixsum=row*col; %像素总数 %灰度化 for i=1:row for j=1:col map(i,j)=0.11*map1(i,j,1)+0.59*map1(i,j,2)+0.3*map1(i,j,3); end end %灰度化完成,输出灰度图 figure(1) imshow(map) title('原始灰度图像') %@@@@@@@@@@@@@@@@@@@@@均值滤波,存储在fig1中 fig1=zeros(row,col); for i=2:row-1 for j=2:col-1 fig1(i,j)=1/9*sum(sum(map(i-1:i+1,j-1:j+1))); % fig1(i,j)=1/9*(map(i-1,j-1)+map(i-1,j)+map(i-1,j+1)+map(i,j-1)+... % map(i,j)+map(i,j+1)+map(i+1,j-1)+map(i,j+1)+map(i+1,j+1)); end end %滤波完成,边缘处理,直接将原图边缘加入 fig1(1,:)=map(1,:); fig1(row,:)=map(row,:); fig1(:,1)=map(:,1); fig1(:,col)=map(:,col); fig1=uint8(fig1); %边缘处理完成 figure(2) subplot(2,1,1) imshow(fig1) title('均值去噪') fig11=map-fig1; subplot(2,1,2)
imshow(fig11) title('噪声图像') %@@@@@@@@@@@@@@@@@@@@@加权滤波,存储在fig2中 fig2=uint8(zeros(row,col)); model=uint8([1 2 1;2 4 2;1 2 1]); for i=2:row-1 for j=2:col-1 fig2(i,j)=sum(sum(map(i-1:i+1,j-1:j+1).*model))/16; %fig2(i,j)=1/16*(map(i-1,j-1)+2*map(i-1,j)+map(i-1,j+1)+2*map(i,j-1)+... %4*map(i,j)+2*map(i,j+1)+map(i+1,j-1)+2*map(i,j+1)+map(i+1,j+1)); end end %滤波完成,边缘处理,直接将原图边缘加入 fig2(1,:)=map(1,:); fig2(row,:)=map(row,:); fig2(:,1)=map(:,1); fig2(:,col)=map(:,col); figure(3) subplot(2,1,1) imshow(fig2) title('加权去噪') fig21=map-fig2; subplot(2,1,2) imshow(fig21) title('噪声图像') %@@@@@@@@@@@@@@@@@@@@@中值滤波,存储在fig3中 fig3=uint8(zeros(row,col)); sortmap=uint8(zeros(1,9)); for i=2:row-1 for j=2:col-1 sortmap=sort([map(i-1,j-1:j+1),map(i,j-1:j+1),map(i+1,j-1:j+1)]); fig3(i,j)=sortmap(5); end end %滤波完成,边缘处理,直接将原图边缘加入 fig3(1,:)=map(1,:); fig3(row,:)=map(row,:); fig3(:,1)=map(:,1); fig3(:,col)=map(:,col); figure(4)
subplot(2,1,1) imshow(fig3) title('中值去噪') fig31=map-fig3; subplot(2,1,2) imshow(fig31) title('噪声图像')
分享到:
收藏