我把彩色图像的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('均值滤波');
如果觉得《matlab显示图像全黑 请教!彩色图像显示出来怎么是全黑的?》对你有帮助,请点赞、收藏,并留下你的观点哦!