一、簡介
隨著計算機和網路的飛速發展,人們的許多創作和成果都以數字形式進行存盤和發布,然而,數字作品極易被非法拷貝、偽造和竄改,使得很多著作權所有者不愿意利用網路公開其作品,從而阻礙其自身發展,目前,數字作品的著作權保護不僅僅是立法問題,也是一個很重要的技術難題,從技術上看,數字媒體著作權資訊的嵌入和檢測問題,是數字作品著作權保護的兩個關鍵問題,它綜合了傳統密碼學的認證和鑒別問題的特點,又加入了穩健性要求,著作權保護資訊必須與被保護的資料密切結合,著作權保護資訊的鑒別程序必須具有了抗干擾能力,在這種情況下,數字水印技術應運而生,
- 數字水印技術概述
提到水印,人們都會想到鈔票中的水印,鈔票水印具有兩條特性,首先,水印在通常情況下不可見,只有在特殊的觀察條件下才可見(鈔票中水印在光下可見),其次,水印資訊必須與載體物件相關(在這里表示紙幣的真實性),
1.1 數字水印技術的特性
可證明性:能夠為受到著作權保護的數字產品提供完全可靠的證據,
不可見性:即被嵌入水印資訊的數字產品不會出現明顯的質量下降,隱藏的資料不易被察覺;另外,不能用統計的方法恢復出水印,
魯棒性:添加的數字水印必須對施加于宿主圖象的攻擊具有一定的免疫能力,不能因為對宿主圖象的某種操作而導致水印資訊丟失,
1.2 數字水印技術的應用
水印技術的應用極為廣泛,主要有以下7種應用領域:廣播監控、所有者識別、所有權驗證、交易跟蹤、內容真偽鑒別、拷貝控制以及設備控制,
- 理論基礎
2.1 小波變換理論
自1986年以來,小波分析的理論、方法與應用的研究一直方興未艾,作為一種數學工具,小波變換是對人們熟知的傅立葉變換和視窗傅立葉變換的一個重大突破,為信號分析、影像處理及其它非線性科學研究領域帶來了革命性的影響,
人類視覺系統(HVS)的文理特性和照亮掩蔽特性表明,紋理越復雜,背景的亮度越亮,人類視覺對其輕微變化就越不敏感,大量的研究表明,人眼在處理影像信號時,將影像濾波成若干的子帶信號,他們占據不同的頻率范圍,即影像在HVS中被認為是由不同頻率范圍的資訊組成,其特征為:人眼對反映區域結構的邊緣和輪廓不敏感;對低頻信號,表現出較高的靈敏度,HVS在同一品大范圍對不同方向紋理細節信號等表現出不同的靈敏度,這一特點與小波變換的多解析度分析具有一定的相似性,小波變換是傅立葉變換的發展,是空間和頻率的區域變換,它在頻域和時域同時具有良好的區域化特征,小波變換在影像處理中的基本思想是把影像進行多解析度分解成不同的空間和獨立的頻率帶的子影像,然后對子影像的系數進行處理,
根據S. Mallat的塔式分解演算法,影像經過小波變換后分解成四個子圖:水平方向LH、垂直方向HL和對角線方向HH的中高頻細節子圖和低頻逼近子圖LL,低頻部分還可以繼續分解,產生三個高頻帶系列LHn、HLn、HHn(n=1,2,3)和一個低頻帶LL3(見圖1),
圖1中的LL3表示小波變換分解級數決定的最大尺度、最小解析度下對原始影像的最佳逼近,它的同級特征和原理圖相似,影像大部分能量集中于此,高頻帶系列代表影像的邊緣和紋理,
2.2 小波變換的應用
小波分析的應用領域十分廣泛,它包括:數學領域的許多學科;信號分析、圖象處理;量子力學、理論物理;軍事電子對抗與武器的智能化;計算機分類與識別;音樂與語言的人工合成;醫學成像與診斷;地震勘探資料處理;大型機械的故障診斷等方面;例如,在數學方面,它已用于數值分析、構造快速數值方法、曲線曲面構造、微分方程求解、控制論等,在信號分析方面的濾波、去噪聲、壓縮、傳遞等,在圖象處理方面的圖象壓縮、分類、識別與診斷,去污等,在醫學成像方面的減少B超、CT、核磁共振成像的時間,提高解析度等,
⑴小波分析用于信號與圖象壓縮是小波分析應用的一個重要方面,它的特點是壓縮比高,壓縮速度快,壓縮后能保持信號與圖象的特征不變,且在傳遞中可以抗干擾,基于小波分析的壓縮方法很多,比較成功的有小波包最好基方法,小波域紋理模型方法,小波變換零樹壓縮,小波變換向量壓縮等,
⑵小波在信號分析中的應用也十分廣泛,它可以用于邊界的處理與濾波、時頻分析、信噪分離與提取弱信號、求分形指數、信號的識別與診斷以及多尺度邊緣檢測等,
⑶在工程技術等方面的應用,包括計算機視覺、計算機圖形學、曲線設計、湍流、遠程宇宙的研究與生物醫學方面,
從影像處理的角度看,小波變換存在以下幾個優點:
⑴小波分解可以覆寫整個頻域(提供了一個數學上完備的描述)
⑵小波變換通過選取合適的濾波器,可以極大的減小或去除所提取得不同特征之間的相關性
⑶小波變換具有“變焦”特性,在低頻段可用高頻率解析度和低時間解析度(寬分析視窗),在高頻段,可用低頻率解析度和高時間解析度(窄分析視窗)
⑷小波變換實作上有快速演算法(Mallat小波分解演算法)
3.DWT變換域數字水印技術
3.1數字水印嵌入技術
影像的水印技術根據水印嵌入的方式可以分為兩類:時/空域技術(水印被直接嵌入在影像的亮度值中)和變換域技術(將影像做某種數學變換,然后水印被嵌入于變換系數中),早期人們對水印的研究基本上是基于時空域的,演算法相對簡單,實時性較強,但在魯棒性上不如變換域演算法,目前變換域方法正日益普遍,有DCT、DWT、DFT變換域演算法,
變換域演算法的優點是:1、水印資訊分布到空間域的所有像素上,有利于提高水印的不可見性,2、能方便的與HVS(人類視覺系統)的某些特性結合,3、很好的魯棒性,對影像壓縮、常用的影像濾波以及噪聲均有一定的抵抗力,離散余弦變換是從影像空間到頻率空間的全域變換,由于離散余弦變換的全域本質,在變換空間中任何一個資料的誤差都會影響到影像中的每一個像素,利用小波變換把原始影像分解成多頻段的影像,能適應人眼的視覺特性且使得水印的嵌入和檢測可分多個層次進行,小波變換域數字水印方法見具有時空域方法和DCT變換域方法的優點,
在一系列信號處理后,如果觀察者的主觀感覺影像的變化不大,那么影像處理前后低、中頻的小波系數的改變幅度同樣有限,另外系數幅值改變的方向(變大或變小)在多數情況下也不同,因此,低、中頻系數的平均改變幅度十分有限,
本演算法選取部分低、中頻系數并分成一定大小的系數塊,通過量化系數塊的平均值來嵌入水印序列,
3.1.1 選擇系數
設X(m,n)是一幅大小為M*N灰度級為2“的灰度影像(1≤m≤M ,1≤n≤N),其中M,N,a為正整數,對X(m,n)進行l層(l為正整數)小波分解,得到3×l個細節影像和一個低頻近似影像,用Xk,l(mi,nj)k=h,v ,d;l=1,2,…,l;mi=1,2,…,M/2l ;nj=1,2,…,N/2l 表示選擇的小波系數,其中l表示分解的層次,k=h,v,d分別表示第l層水平、垂直和對角方向的子影像,考慮到量化低頻子圖可能產生較大失真,因此不在其中嵌入水印,而選擇除低頻外的中頻系數[3],
3.1.2 分塊并計算每塊的平均值
根據嵌入的資訊量和對演算法魯棒性的要求,塊越大,水印的魯棒性越好,但嵌入的水印位元少,把XK,l (mi,nj)分成一定大小的塊,用Block (s,t)表示XK,l (mi,nj)中大小為s×t的系數塊,其中s=1,2,…,mi ,t=1,2,…,nj,b為正整數,代表該塊的編號,其平均值為Ave =∑Block(s,t)/(s*t):其中 ∑Block 為塊內系數幅值的累計和,
3.1.3 量化
水印序列w的嵌入是通過對Ave 的量化完成的,例如:量化成奇數代表嵌入“1”,量化成偶數相當于嵌入“0”,根據對魯棒性和隱藏性的折中考慮,設量化間隔△l,l=1,2,…,l表示分解層數,對于低頻的第l層,由于系數幅值極大,可以作較大間隔的量化,對第l-1,…,1層次作間隔逐漸減小的量化,
根據wi ={0,1}將Ave 量化到與之最近的奇、偶點,用Dat(i,j)表示Block 中的一個小波系數,量化后的該系數用Dat ′(i,j)表示,其中i=1,2,…,s;j=1,2,…,t,
設T=Ave/△l,Turdat=rem([T],2)其中[]表示四舍五入取整,rem 表示求[T] 除以2的余數,
若Turdat與wi相同,則量化的小波系數為
Dat′(i,j)=Dat(i,j)+[T]×△l-Ave
若Turdat與wi不同,小波系數按下列量化
Dat′(i,j)=Dat(i,j)+([T]+1)×△l–Ave,T≥[T]
Dat′(i,j)=Dat(i,j)+([T]-1)×△l –Ave,T<[T]
3.1.4 重構
使用相同的小波基,通過小波逆變換生成含有水印的影像,并將小波基、小波分解層數、選擇的系數區域、分塊方法、量化間隔、奇偶對應關系記錄形成密鑰[4],
3.2 數字水印提取技術
水印的提取由嵌入方式來決定,它是嵌入方式的逆程序,首先對要檢測的影像進行小波變換,根據密鑰確定嵌入水印的位置,并對水印進行置亂處理的逆運算,可以通過計算歸一化互相關函式Nc和峰值信噪比Rpsnr 來度量該水印演算法的魯棒性和透明性,
計算引數:(公式自己查找)
-
歸一化互相關函式Nc
-
峰值信噪比Rpsnr
二、源代碼
clear all
clc
[a,fs,bits]=wavread('s.wav');%請自己修改路徑
subplot(3,1,1);plot(a);
title('原始音頻波形圖')
w=imread('32.bmp');%請自己修改路徑
subplot(3,1,2);imshow(w)
title('原始水印')
w1=w(:);
[c,l]=wavedec(a,3,'haar');%3級小波分解
ca3=appcoef(c,l,3,'haar');%提取3級小波分解的最低頻部分
cd3=detcoef(c,l,3);%提取3級小波分解的次低頻部份
cd2=detcoef(c,l,2);
cd1=detcoef(c,l,1);
%以相鄰60個系數為量化組,然后從低頻分量中的第60個到60*(1024+1)個點作為量化嵌入點
q=1.7263e-004 %以最低頻分量里面大于0.00001絕對值最小的系數作為量化步長,并且這個值作為密鑰key保存下來
for i=1:1024
ave(i)=sum(ca3(i*60:(i+1)*60))/60;%因為ca3系數有正亦有負,所以ave(i)∈(-1.0000,11111)正負不定
z(i)=fix(ave(i)/q+1/2);%所以下面z(i)∈(-1000,1000)正負亦不定,q∈(-0.001, 0.001)
end
for i=1:1024
if mod(z(i),2)==w1(i)
cxzc=0;
else
if mod(z(i),2)~=w1(i)&&z(i)==fix(ave(i)/q)&&z(i)>=0||mod(z(i),2)~=w1(i)&&z(i)~=fix(ave(i)/q)&&z(i)<0
ca3(i*60:(i+1)*60)=ca3(i*60:(i+1)*60)+q;
else
ca3(i*60:(i+1)*60)=ca3(i*60:(i+1)*60)-q;
end
end
end
%Idwt
c1=[ca3',cd3',cd2',cd1'];%這一步很重要,不然下面的音頻b重構時,仍將按原音頻來
b=waverec(c1,l,'haar');%b為量化嵌入水印后的音頻資料
subplot(3,1,3);
plot(b);
title('嵌入水印后的音頻');
wavwrite(b,fs,bits,'S32marked.wav');
psnr_value=psnr(a,b)
%------test---------
%[c,l]=wavedec(b,3,'haar');%3級小波分解
%ca3=appcoef(c,l,'haar',3);
%for i=1:1024
% ave(i)=sum(ca3(i*30:(i+1)*30))/30;
% zz(i)=(mod(fix(ave(i)/q+1/2),2));
%end
clear all
clc
a=wavread('marked.wav');
subplot(3,1,1);plot(a);
title('嵌入水印的音頻波形圖')
w_source=imread('mark.bmp');
subplot(3,1,2);imshow(w_source)
q=1.7263e-004; %q應該是作為密鑰在嵌入時就保存下來,這里直接用的嵌入時的值
for i=1:1024
ave(i)=sum(ca3(i*60:(i+1)*60))/60;
w1(i)=(mod(fix(ave(i)/q+1/2),2));
end
三、運行結果

四、備注
完整代碼或者代寫添加QQ 1564658423
往期回顧>>>>>>
【信號處理】基于matlab HMM的睡眠狀態檢測【含Matlab原始碼 050期】
【信號處理】基于matlab CDR噪聲和混響抑制【含Matlab原始碼 051期】
【信號處理】基于matlab最小二乘法解決稀疏信號恢復問題【含Matlab原始碼 052期】
【信號處理】基于matlab小波變換的音頻水印嵌入提取【含Matlab原始碼 053期】
【信號處理】基于matlab ICA演算法信號分離【含Matlab原始碼 054期】
【信號處理】基于matlab GUI界面的脈搏信號之脈率存檔【含Matlab原始碼 237期】
【信號處理】基于matlab GUI界面的虛擬信號發生器(各種波形)【含Matlab原始碼 271期】
【信號處理】基于matlab GUI界面信號發生器之電子琴【含Matlab原始碼 272期】
【信號處理】基于matlab的數字電子琴設計與實作【含Matlab原始碼 273期】
【雷達通信】基于matlab的雷達數字信號處理【含Matlab原始碼 281期】
【雷達通信】基于matlab線性調頻(LFM)脈沖壓縮雷達仿真【含Matlab原始碼 283期】
【雷達通信】基于mtatlab距離多普勒(RD)、CS、RM演算法的機載雷達成像【含Matlab原始碼 284期】
【雷達通信】《現代雷達系統分析與設計》大作業【含Matlab原始碼 285期】
【信號處理】基于matlab GUI語音信號綜合處理平臺【含Matlab原始碼 290期】
【信號處理】基于matlab GUI語音信號采集【含Matlab原始碼 291期】
【信號處理】基于matlab GUI語音幅度調制【含Matlab原始碼 292期】
【信號處理】基于matlab GUI語音合成【含Matlab原始碼 293期】
【信號處理】基于matlab GUI語音基頻識別【含Matlab原始碼 294期】
【信號處理】基于matlab GUI語音信號加密解密【含Matlab原始碼 295期】
【信號處理】基于matlab小波變換的語音增強【含Matlab原始碼 296期】
【信號處理】基于matlab GUI語音傅立葉變換降噪混頻【含Matlab原始碼 297期】
【信號處理】基于matlab GUI維納濾波之語音增強【含Matlab原始碼 298期】
【音頻處理】基于matlab GUI語音信號處理2【含Matlab原始碼 299期】
【雷達通信】基于matlab GUI雷達定位【含Matlab原始碼 302期】
【雷達通信】基于matlab GUI雷達脈沖壓縮【含Matlab原始碼 303期】
【雷達通信】基于matlab GUI雷達定位模擬【含Matlab原始碼 304期】
【雷達通信】基于matlab SVM識別雷達資料【含Matlab原始碼 305期】
【雷達影像】SAR合成孔徑雷達成像及處理【含Matlab原始碼 307期】
【資訊處理】基于GUI數字波束的演算法庫【含Matlab原始碼 313期】
【通信】基于matlab的OFDM-MIMO通信建模與仿真【含Matlab原始碼 314期】
【通信】基于matlab的OFDM仿真【含Matlab原始碼 315期】
【信號處理】基于matlab窗函式法的FIR數字濾波器設計【含Matlab原始碼 316期】
【通信】基于matlab FIR低通數字濾波器設計【含Matlab原始碼 323期】
【通信】基于matlab FIR IIR數字濾波器設計【含Matlab原始碼 324期】
【信號處理】基于matlab的語音信號頻譜分析儀【含Matlab原始碼 325期】
【調制信號】基于matlab GUI數字調制信號仿真【含Matlab原始碼 336期】
【通信】基于matlab的擴頻通信系統設計【含Matlab原始碼 337期】
【通信】基于matlab多徑衰落信道的仿真【含Matlab原始碼 338期】
【語音識別】基于matlab BP神經網路的語音情感識別【含Matlab原始碼 349期】
【信號處理】基于matlab音頻水印嵌入與提取【含Matlab原始碼 350期】
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/262124.html
標籤:其他
上一篇:java 的bouncycastle AES加密,怎么處理成php的,疑惑
下一篇:設計模式-原型模式(簡歷復印)
