我把彩色图像的rgb三个分量分别均值滤波,再恢复成彩色图像,但是显示的图像是全黑的,在显示均值滤波后的图像时有问题。

下面是代码:

yt=imread('yt.jpg');

figure(1);

subplot(121);

imshow(yt);

title('原图');

y_s = imnoise(yt,'salt & pepper',0.02);

y_g = imnoise(y_s,'gaussian');%加入椒盐和高斯噪声

y1=y_g(:,:,1);%提取RGB三个分量

y2=y_g(:,:,2);

y3=y_g(:,:,3);

%中值滤波

m1 =medfilt2(y1,[3 3]);

m2= medfilt2(y2,[3 3]);

m3= medfilt2(y3,[3 3]);

m(:,:,1)=m1;

m(:,:,2)=m2;

m(:,:,3)=m3;

subplot(122);

imshow(y_g);

title('加噪图像');

figure(2);

subplot(221);

imshow(uint8(m));

title('中值滤波');

% %小波滤波

% [c1,s1]=wavedec2(y1,3,'sym4');

% alpha=3;

% m1 = 3.5*prod(s1(1,:));

% sorh1='s';

% [thr1,nkeep1]=wdcbm2(c1,s1,alpha,m1);

% w1 = wdencmp('lvd',c1,s1,'sym4',3,thr1,sorh1);

% [c2,s2]=wavedec2(y2,3,'sym4');

% alpha=3;

% m2 = 3.5*prod(s2(1,:));

% sorh1='s';

% [thr2,nkeep2]=wdcbm2(c2,s2,alpha,m2);

% w2 = wdencmp('lvd',c2,s2,'sym4',3,thr2,sorh1);

% [c3,s3]=wavedec2(y3,3,'sym4');

% alpha=3;

% m3 = 3.5*prod(s3(1,:));

% sorh1='s';

% [thr3,nkeep3]=wdcbm2(c3,s3,alpha,m3);

% w3 = wdencmp('lvd',c3,s3,'sym4',3,thr3,sorh1);

% subplot(222);

% y_w=cat(3,w1,w2,w3);

% imshow(uint8(y_w));

% title('小波滤波');

%均值滤波(有问题)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%

a1=filter2(fspecial('average',3),y1)/255 ; %滤波模板尺寸

a2=filter2(fspecial('average',3),y1)/255 ;

a3=filter2(fspecial('average',3),y1)/255 ;

a=cat(3,a1,a2,a3);

subplot(223);

imshow(uint8(a));

title('均值滤波');

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐