【发布时间】:2017-02-03 18:11:45
【问题描述】:
我正在尝试使用lsb embedding method 将狒狒图像插入到 lena 图像中。当我尝试从隐秘图像中提取狒狒时,它只显示一个白色图像。
谁能告诉我我的代码有什么问题以及如何解决这个问题?
这是我的狒狒图片。
这是我的莉娜图片。
我的嵌入代码
file_name='lena.bmp';
cover_image=imread(file_name);
[row,col]=size(cover_image);
%secret image
file_name='baboon.bmp';
secret_image=imread(file_name);
secret_image=imresize(secret_image,[row,col]);
stego_image=cover_image;
for ii=1:row
for jj=1:col
stego_image(ii,jj)=bitset(stego_image(ii,jj),1,secret_image(ii,jj));
end
end
imwrite(uint8(stego_image),'Stegoimage.bmp')
我的提取码
file_name='Stegoimage.bmp';
stego_image=imread(file_name);
[row,col]=size(stego_image);
for ii=1:row
for jj=1:col
extracted_image(ii,jj)=bitget(stego_image(ii,jj),1);
end
end
extracted_image=uint8(255*extracted_image);
【问题讨论】:
-
您只提取“加密”图像的 LSB,而其余像素为零。这意味着最终结果中只有两种可能的强度,这就是为什么您什么都看不到的原因。当您丢弃该信息时,您没有任何机制可以从其他图像中恢复其余位。
-
那我应该如何修复我的代码?
-
你不能。方法有缺陷。做点别的。
-
好的。这是先生的主意吗?我还是隐写术的新手。
-
我对隐写术一无所知。我所做的只是指出为什么你的方法不起作用。
标签: matlab steganography