Error using imshow function

1 visualización (últimos 30 días)
nan li
nan li el 29 de Abr. de 2015
Editada: Walter Roberson el 16 de Abr. de 2016
the error I get is
Error using imageDisplayValidateParams
Expected input number 2, [LOW HIGH], to be non-NaN.
Error in checkDisplayRange (line 11)
validateattributes(display_range, {'numeric'},...
Error in imageDisplayValidateParams (line 57)
common_args.DisplayRange = checkDisplayRange(common_args.DisplayRange,mfilename);
Error in imageDisplayParseInputs (line 79)
common_args = imageDisplayValidateParams(common_args);
Error in imshow (line 198)
[common_args,specific_args] = ...
Error in FOA_good4 (line 125)
imshow(message,[]);
The code is
function FOA_DWT=FOA_good4(oo,pp)
X_axis=10*rand();
Y_axis=10*rand();
maxgen=oo;
sizepop=pp;
for ii=1:sizepop
disp('smelli');disp(ii);
X_F(ii)=X_axis+2*rand()-1;
Y_F(ii)=Y_axis+2*rand()-1;
D(ii)=(X_F(ii)^2+Y_F(ii)^2)^0.5;
S(ii)=1/D(ii);
disp(S(ii));
I = imread('lena512.bmp');
figure(1);
subplot(221);imshow(I);title('yuanshituxiang');
w=imread('22.bmp');
subplot(222);
imshow(w);title('shuiyintuxiang');
w1=w;
xx=1;yy=1;
T=10;m=90;
tt=xx;xx=xx+yy;yy=tt+2*yy;
while xx~=1&&yy~=1;
T=T+1;
if xx>m
xx=mod(xx,m);
end
if yy>m
yy=mod(yy,m);
end
tt=xx;xx=xx+yy;yy=tt+2*yy;
end
iTimes=20;
message=w1;
Mm=size(message,1);
Nm=size(message,2);
if Mm~=Nm
error('shuiyinbixuweifangzhen');
end
if Mm~=64
error('error');
end
tempImg=message;
for n=1:iTimes
for u=1:Mm
for v=1:Nm
temp=tempImg(u,v);
ax=mod((u-1)+(v-1),Mm)+1;
ay=mod((u-1)+2*(v-1),Nm)+1;
outImg(ax,ay)=temp;
end
end
tempImg=outImg;
message=tempImg;
w1=message;
end
watermark_zl=outImg;
imwrite(watermark_zl,'watermark_zl.bmp');
[cA1,cH1,cV1,cD1]=dwt2(I,'haar');
[cA2,cH2,cV2,cD2]=dwt2(cA1,'haar');
[cA3,cH3,cV3,cD3]=dwt2(cA2,'haar');
[mm1,nn1]=size(cA3);
[U,S,V]=svd(cA3);
[Uw,Sw,Vw]=svd(double(w1));
PCw=Uw*Sw;
Temp=S+S(ii)*PCw;
CW=U*Temp*V';
X3=idwt2(CW,cH3,cV3,cD3,'haar');
X2=idwt2(X3,cH2,cV2,cD2,'haar');
Y=idwt2(X2,cH1,cV1,cD1,'haar');
watermarked=Y;
A=uint8(watermarked);
imwrite(A,'dwt_svd_watermarked.bmp','bmp');
figure(1)
subplot(2,2,3)
imshow(watermarked,[]);
title('qiantushuiyinhoutuxiang')
[ccA1,ccH1,ccV1,ccD1]=dwt2(watermarked,'haar');
[ccA2,ccH2,ccV2,ccD2]=dwt2(ccA1,'haar');
[ccA3,ccH3,ccV3,ccD3]=dwt2(ccA2,'haar');
[cA1,cH1,cV1,cD1]=dwt2(I,'haar');
[cA2,cH2,cV2,cD2]=dwt2(cA1,'haar');
[cA3,cH3,cV3,cD3]=dwt2(cA2,'haar');
WNN=zeros(mm1,nn1);
WN=zeros(mm1,nn1);
WN=(U'*(ccA3-cA3)*V)/S(ii);
WNN=WN*Vw';
tempImg=WNN;
message_arnold=tempImg;
iTimes1=48-iTimes;
Mo=size(outImg,1);
No=size(outImg,2);
for n=1:iTimes1
for u=1:Mo
for v=1:No
temp1=tempImg(u,v);
bx=mod((u-1)+(v-1),Mo)+1;
by=mod((u-1)+2*(v-1),No)+1;
outImg1(bx,by)=temp1;
end
end
tempImg=outImg1;
end
message=outImg1;
figure(1);
subplot(2,2,4)
imshow(message,[]);
title('tiqushuiyin');
watermark_ok=message;
imwrite(watermark_ok,'watermark_ok.bmp','bmp');
PSNR=psnr(I,watermarked); disp('PSNR:');disp(PSNR)
NC=nc(WNN,watermark_zl);disp('wugongji:');disp(NC)

Respuestas (1)

Image Analyst
Image Analyst el 29 de Abr. de 2015
It seems like you must have a nan in your message array somewhere. Get rid of them by setting them to zero:
message(isnan(message) = 0; % Set NaN's to 0.
imshow(message, []);

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by