以下のコードは、ステガノグラフィーを使用して、指定された 2 つの DWT 係数のテキスト「helloworld」を非表示にします。.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 とステガノグラフィ/透かしに非常に慣れていません。離散ウェーブレット変換での LSB 埋め込みに関する多くの研究を行っています.しかし、Web から取得した上記のコードは、サブバンド係数を操作していますが、コードから読み取ることができるものから、LSB 置換によってそれを行っていません.(つまり、カバー画像の LSB をシークレット データ ファイルの MSB に置き換えます) LSb ウェーブレットの埋め込みによって動作するコードを推奨してくれる人はいますか?