在运行MATLAB时为何没有图像显示呢?

%打开秘密文件,读入秘密信息
msgfid=fopen('hidden.txt','r');
[msg,count]=fread(msgfid);
count=count*8;
alpha=0.02;
fclose(msgfid);
msg=str2bit(msg)';
[len col]=size(msg);
%打开秘密文件,读入秘密信息
io=imread('LenaY.bmp');
level=graythresh(io);
io=im2bw(io,level);
T=dctmtx(8);%对图像进行分块
DCTy=blkproc(io,[8 8],'P1*x*P2',T,T');%对图像分块进行DCT变换
[row,col]=size(DCTy);
row=floor(row/8);
col=floor(col/8);
% 顺序信息嵌入
temp=0;
for i=1:count;
if msg(i,1)==0
if DCTy(i+4,i+1)<DCTy(i+3,i+2)%选择(5,2)和(4,3)这一对系数
temp=DCTy(i+4,i+1);
DCTy(i+4,i+1)=DCTy(i+3,i+2);
DCTy(i+3,i+2)=temp;
end
else
if DCTy(i+4,i+1)>DCTy(i+3,i+2)
temp=DCTy(i+4,i+1);
DCTy(i+4,i+1)=DCTy(i+3,i+2);
DCTy(i+3,i+2)=temp;
end
if DCTy(i+4,i+1)<DCTy(i+3,i+2)
DCTy(i+4,i+1)=DCTy(i+4,i+1)-alpha;%将原本小的系数调整更小,使得系数差别变大
else
DCTy(i+3,i+2)=DCTy(i+3,i+2)-alpha;
end
end
%显示图像
wi=blkproc(DCTy,[8 8],'P1*x*P2',T',T);%对DCTy进行逆变换
figure,imshow('LenaY.bmp');title('原始图像');
figure,imshow('watermarked.bmp');title('嵌入水印图像')

注意你的图像数据类型,如果是double的类型的话范围应该是0-1
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜