我試圖用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