噪声的话要考察是什么噪声
白噪声,可用二维高斯滤波器
椒盐噪声,求相邻像素点的平均值
像素低,可考虑插值
不求太精细做线形插值
精细一点可做多项式插值
但插值不会使图像变得高清,图像像素低意味着高频的细节少,任何插值都不能够加入没有的高频分量。插值只能使图像的像素点变多,使同样大小图像像素点更密而看上去平滑一些。
应该另外开辟一个空间保存新计算的图像像素值,你这样是把前面计算好的中值或者均值算到它临近点的3*3区域里了,这样的效果应该是图像从左上到右下越来越白或者越来越黑。对于椒盐噪声,中值滤波的效果好;对于高斯噪声,均值滤波的效果好。
I=imread('D:\我的文档\MATLAB\cameraman.bmp')J0=imnoise(I,'gaussian')
J1=imnoise(I,'salt &pepper')
J0J3=imfilter(J0,fspecial('average'))
J0J5=imfilter(J0,fspecial('average',[5 5]))
J0Z3=medfilt2(J0)
J0Z5=medfilt2(J0,[5 5])
J1J3=imfilter(J1,fspecial('average'))
J1J5=imfilter(J1,fspecial('average',[5 5]))
J1Z3=medfilt2(J1)
J1Z5=medfilt2(J1,[5 5])
subplot(2,2,1),imshow(I)
title('原始图像')
subplot(2,2,2),imshow(J0)
title('加入零均值高斯噪声')
subplot(2,2,3),imshow(J1)
title('加入椒盐噪声')
figure,
subplot(2,2,1),imshow(J0J3)
title('对高斯噪声,采用3x3均值滤波')
subplot(2,2,2),imshow(J0J5)
title('对高斯噪声,采用5x5均值滤波')
subplot(2,2,3),imshow(J0Z3)
title('对高斯噪声,采用3x3中值滤波')
subplot(2,2,4),imshow(J0Z5)
title('对高斯噪声,采用5x5中值滤波')
figure,
subplot(2,2,1),imshow(J1J3)
title('对椒盐噪声,采用3x3均值滤波')
subplot(2,2,2),imshow(J1J5)
title('对椒盐噪声,采用5x5均值滤波')
subplot(2,2,3),imshow(J1Z3)
title('对椒盐噪声,采用3x3中值滤波')
subplot(2,2,4),imshow(J1Z5)
title('对椒盐噪声,采用5x5中值滤波')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)