我试图用lsb embedding method将狒狒图像插入lena图像。当我尝试从隐秘图像中提取狒狒时,它只显示一张白色图像。用隐写术提取的图像是白色的
任何人都可以告诉我我的代码有什么问题,以及如何解决这个问题?
这是我的狒狒图像。
这是我的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,而其余像素为零。这意味着最终结果只有两种可能的强度,这就是为什么你什么都看不到。您没有任何机制可以在丢弃该信息时从其他图像中恢复剩余的位。 – rayryeng
那么我应该如何修复我的代码? – kenreal
你不能。该方法有缺陷。做别的事。 – rayryeng