基于MATLAB的图像去噪

新人求用MATLAB实现小波变换和中值滤波结合去噪的源码,用来对灰度图像进行处理,MATLAB版本2016a

matlab自带的函数有小波变换不

我用的是MATLAB2016a,应该有小波变换的

去噪可以先对图像做闭运算(iclose(im)),再做开运算(iopen(im))
例如:
s=kcircle(3) %用于闭运算窗口大小
closed=iclose(im,s); %闭运算
clean=iopen(closed,s); %开运算,得到的图片是去噪后的

%中值滤波

img = imread('denoise.jpg');
% 将图片分为R,G,B图片
R = img(:,:,1);
G = img(:,:,2);
B = img(:,:,3);
% 采用二维中值滤波函数medfilt2对图像滤波
R1 = medfilt2(R);
G1 = medfilt2(G);
B1 = medfilt2(B);
% 合并RGB三通道
RGB(:,:,1)=R1(:,:,1);
RGB(:,:,2)=G1(:,:,1);
RGB(:,:,3)=B1(:,:,1);
figure();
subplot(1,2,1);
imshow(img);
title('原图像');
subplot(1,2,2);imshow(RGB);
title('处理后的图像(中值滤波)');