下面的代码隐藏了文字" helloworld"在使用隐写术的两个指定的DWT系数中。我一直在尝试调整代码来隐藏.txt文件中包含的数据。我一直在研究这个问题,但似乎无法正常工作。有人可以帮忙吗?
clear all;
close all;
dataToHide = 'helloworld';
wavename = 'haar';
data = zeros(1,length (dataToHide));
for i =1 : length(dataToHide);
d = dataToHide (i)+0;
data (i) = d;
end
im=imread ('cameraman.tif');
%imshow(im);
[cA1, cH1,cV1, cD1]= dwt2(im,wavename);
A1 = upcoef2('a',cA1,wavename,1);
H1 = upcoef2('h',cH1,wavename,1);
V1 = upcoef2('v',cV1,wavename,1);
D1 = upcoef2('d',cD1,wavename,1);
subplot(2,2,1); image(wcodemat(A1,192));
title ('A1');
subplot(2,2,2); image(wcodemat(H1,192));
title ('H1');
M=max(data);
normilize = data/M;
n=length(data);
cH1 (1,1) = -1*(n/10);
cH1 (1,2) = -1*(M/10);
[~ , y] =size(cH1);
for i = 1 : ceil(n/2)
cV1 (i,y) = normilize(i);
end
for i= ceil(n/2)+1 :n;
cD1 (i,y) = normilize(i);
end
更新
我可以从文件中知道读取文本。但是,我遇到了另一个问题。当我从文件中读取时,我想将文本转换为二进制文件(name = dec2bin(dataToHide)。上面的代码并不想为我隐藏二进制数据?我对matlab& steganography / watermarking很新。我已经在离散小波变换中进行了大量关于LSB嵌入的研究。但是,我从网上得到的代码是操纵子带系数,但是我从代码中读到的它不是通过LSB替换来实现的。 (即用隐藏数据文件的MSB替换封面图像的LSB)。任何人都可以推荐一些代码供我查看LSb小波嵌入的工作吗?