我正在尝试提取使用 DWT 隐写术隐藏的隐藏数据。然后,当我应用压缩时,什么也没有发生!我已使用以下代码压缩我的 .bmp 图像,但应用压缩后没有提取隐藏消息。我尝试在调试器中运行,它似乎只是在循环一次之后跳转到代码的末尾。对问题的任何想法。在应用压缩之前,数据提取得很好。
%%%%%%%%%%%%%%%%%%DECODING%%%%%%%%%%%%%%%%%%%%%%%
%clear;
filename='newStego.bmp';
stego_image=imread(filename);
compression=90;
file_compressed=sprintf('compression_%d_percent.jpg',compression);
imwrite(imread(filename),file_compressed,'Quality',compression);
new_Stego = double(imread (file_compressed));
[LL,LH,HL,HH] = dwt2(new_Stego,'haar');
message = '';
msgbits = '';
for ii = 1:size(HH,1)*size(HH,2)
if HH(ii) > 0
msgbits = strcat (msgbits, '1');
elseif HH(ii) < 0
msgbits = strcat (msgbits, '0');
else
return;
end
if mod(ii,8) == 0
msgChar = bin2dec(msgbits);
if msgChar == 0
break;
end
msgChar = char (msgChar);
message = [message msgChar];
msgbits = '';
disp(message);
end
end