1 簡介
提出了一種将灰階圖像嵌入到音頻信号的數字水印算法.該算法以包含豐富資訊的灰階圖像作為數字水印 , 首先利用 DC T靜态圖像壓縮技術 ,将二維數字水印 (灰階圖像 )編碼成一維二進制序列并進行随機置亂 ,再對數字音頻 信号進行分段處理并依據人類聽覺系統 ( HAS)擇段做離散餘弦變換 ( DCT) ,最後在離散餘弦變換域内通過修改中高 頻 DCT系數完成水印資訊的自适應嵌入 .實驗結果表明: 該自适應數字音頻水印算法不僅具有較好的透明性 ,而且對 諸如疊加噪聲、有損壓縮、低通濾波、重新采樣、重新量化等攻擊均具有較好的魯棒性.
2 部分代碼
function exteredmark=extract(MarkedX,wrow,wcol)
%水印提取----------------------------------------
[cm,lm]=wavedec(MarkedX,2,'db4'); %
cma2=appcoef(cm,lm,'db4',2); %
cmd2=detcoef(cm,lm,2); %
cmd1=detcoef(cm,lm,1); %
lcma=length(cma2); %低頻長度
blocksize=fix(lcma/(wrow*wcol)); %每塊的大小
water_exter=zeros(1,wrow*wcol); %建立一個一維向量存儲提取的水印資訊
a=0.25; %量化步長
j=1;
for i=1:wrow*wcol
Blockm=cma2(j:j+blocksize-1);
[UM,SM,VM]=svd(double(Blockm)); %對每塊進行SVD變換
if(mod(round(SM(1,1)/a),2)==0) %如果為靠近步長的偶數倍,則水印信号為0
water_exter(i)=0;
else
water_exter(i)=1; %如果為靠近步長的偶數倍,則水印信号為0
end
j=j+blocksize;
end
exteredmark=reshape(water_exter,wrow,wcol);%恢複和原圖一樣大小的圖像
3 仿真結果
4 參考文獻
[1]陽鑫. 基于DCT變換的數字水印研究及其MATLAB實作[J]. 2022(11).