使用dwt隐写术隐藏图像文件中文本文件的数据

时间:2014-11-13 18:40:27

标签: steganography dwt

下面的代码隐藏了文字" 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小波嵌入的工作吗?

0 个答案:

没有答案