Ⅰ 基於DCT域數字水印有幾種方法 , 基於小波域數字水印方法有幾種
DCT域水印演算法
基於DCT的水印演算法的最大優點就是其與國際壓縮標准(JPEG}MPEG,H.261/263)兼容,
水印的嵌入和檢測都能夠在數據的壓縮域中直接進行。但在壓縮域中直接進行水印嵌入和
檢測所帶來的問題是:在量化後的DCT系數上添加的水印(系數的變換)可能在解壓縮的過
程中被放大,從而引起水印和圖像的失真。好的水印演算法必須綜合水印的嵌入和圖像壓縮
技術使失真維持到最小。
Cox等提出在圖像全局DCT變換域中除Dc分量外系數幅值最大的n個系數中嵌入水印信
息,由於圖像的主要能量均集中在圖像低頻區域(故低頻區域具有較大的系數幅值),因此
相當於在圖像的重要分量中嵌入水印信息。另一方面,人類視覺系統對圖像的低頻、高頻
能量比較敏感,而對圖像的高頻區域變化不敏感,一般的處理都保留圖像的重要分量(低
頻區域),而改變非重要分量(高頻區域),所以水印信息對圖像處理的魯棒性較好。
目前,大部分的DCT水印方法採用的是基於DCT的8x8圖像塊。E.Koch和J.Zhao從所有
圖像塊中隨機選取一系列圖像塊,對其進行8x8分塊DCT變換,然後將二進制的水印序列添
加到變換矩陣的中頻系數來實現水印的嵌入,同時他們在水印嵌入時引入了密鑰機制,實
現了水印技術與密碼技術的結合:A.GBors和I.Pitas基於高斯網狀分類器來抽取圖像塊,
採用兩種方法來添加水印。一種是通過在選定圖像塊的DCT變換的中頻系數中添加線性限
制來加入水印:另一種是在DCT系數中定義一個固定的圓形區域來進行水印嵌入,這種方法
不需要原始圖像就可以進行水印的檢測。
C.T.Hsu和J.L.wu等071利用可視化模型,在8x8分塊DCT系數中按Zig—Zag掃描順序選擇
4x4個中頻系數組成小塊,通過比較相鄰兩個小中頻系數塊中相應位置上系數的大小進行
標志圖像水印的嵌入。Bami等從整幅圖像的DCT系數中選擇中頻系數作為水印的嵌入位置。
這些演算法選擇DCT的中頻或低頻系數對水印的不可見性和魯棒性加以折衷,難以抵抗
壓縮編碼及其他一些圖像處理的攻擊,而且水印的不可見性極大的依賴於不同圖像的特
性。並且他們無一例外地將Dc分量排除在外。黃繼武等指出DC分量比任何AC分量都具有更
大的感覺容量,從魯棒性出發,Dc分量最適合用來嵌入水印,結合圖像照度掩蔽特性和紋
理掩蔽特性可得到不可見性和魯棒性較好的水印演算法。
dwt水印演算法
自從小波技術成為MPEG-4及JPEG--2000壓縮標準的核心技術以來,基於小波域的水印
演算法越來越多。在小波域嵌入水印的原因是:可以防止由於JPEG-2000有損壓縮而造成的水
印消除:可以利用信源編碼領域對圖像失真的可見性研究成果來控制水印的嵌入位置和強
度:可以實現在壓縮域直接嵌入水印。此外,利用小波多解析度分析可以更好地控制水印
在宿主圖像中的分布,更好地解決魯棒性和可見性之間的矛盾。
Ⅱ DCT域圖像數字水印演算法
%嵌入水印的程序代碼
clear
clc
M =512;%原圖像長度
N =64;%水印圖像長度
K =8;
I=zeros(M,M);J=zeros(N,N);BLOCK=zeros(K,K);
%顯示原圖像
subplot(2,3,1);
I=imread('liftingbody.png','png');imshow(I);title('原始公開圖像');
%顯示水印圖像
subplot(2,3,2);
J=imread('shuiyin.bmp','bmp');imshow(J);title ('水印圖像');
%水印嵌入
for p=1:N
for q=1:N
x=(p-1)*K+1; y=(q-1)*K+1;
BLOCK =I(x:x+K-1,y:y+K-1);BLOCK=dct2(BLOCK);
if J(p,q)==0
a=-1;
else
a=1;
end
BLOCK(1,1)=BLOCK(1,1)*(1+a*0.03);BLOCK=idct2(BLOCK);
I(x:x+K-1,y:y+K-1)=BLOCK;
end
end
%顯示嵌入水印後的圖像
subplot(2,3,3);
imshow(I);title('嵌入水印後的圖像');
imwrite(I,'watermarked.bmp','bmp');
%從嵌入水印的圖像中提取水印
I=imread('liftingbody.png','png');
J=imread('watermarked.bmp','bmp');
J=imnoise(J,'gaussian',0,0.01);
subplot(2,3,4);imshow(J,[]);title('加入高斯雜訊');
for p=1:N
for q=1:N
x=(p-1)*K+1;
y=(q-1)*K+1;
BLOCK1 =I(x:x+K-1,y:y+K-1);
BLOCK2 =J(x:x+K-1,y:y+K-1);
BLOCK1=dct2(BLOCK1);
BLOCK2=dct2(BLOCK2);
a = BLOCK2(1,1)/BLOCK1(1,1)-1;
if a<0
W(p,q)=0;
else
W(p,q)=1;
end
end
end
%顯示提取的水印
subplot(2,3,5);
imshow(W);
title('從含水印圖像中提取的水印');
至於分析演算法對雜訊攻擊的抵抗性能.你需要計算PSNR和相關系數NC就可以了
Ⅲ DCT域圖像數字水印演算法,新手,這個水印嵌入程序看不明白,誰能幫我把每條注釋下Q282092728,謝謝了
M=256;%原圖像長度
N=32;%水印圖像長度
K=8; %圖像分塊大小
I=zeros(M,M);%創建一個零矩陣,用於存放載體圖像
J=zeros(N,N); %創建一個零矩陣,用於存放水印圖像
BLOCK=zeros(K,K);%創建一個零矩陣,用於存放圖像分塊
%顯示水印圖像
subplot(1,8,2);
J=imread('14','bmp'); %讀入水印圖像
imshow(J); %顯示水印圖像
title('水印圖像');
%顯示原圖像
subplot(1,3,2);
I=imread('11','bmp'); %讀入原始圖像
imshow(I); %顯示原始圖像
title('原始公開圖像');
%嵌入水印
tem=1;%創建變數tem,沒用
for p=1:N%水印圖像行循環
for q=1:N%水印圖像列循環
x=(p-1)*K+1; %x為載體圖像行坐標
y=(q-1)*K+1; %y為載體圖像列坐標
BLOCK=I(x:x+K-1,y:y+K-1); %BLOCK為載體圖像I的分塊,分塊大小為K*K,
%初始值為I(0:K-1,0:K-1)
BLOCK=dct2(BLOCK);%對BLOCK進行二維DCT變換,得到新的BLOCK即%DCT系數矩陣BLOCK
if J(p,q)==0%如果水印圖像的第(p,q)個像素為0
a=-1;%嵌入參數為-1
else
a=1; %若如果水印圖像的第(p,q)個像素為1嵌入參數為1
end
BLOCK(2,1)=BLOCK(2,1)*(1+a*0.01); %對載體圖像的分塊的DCT系數矩陣
%BLOCK
BLOCK=idct2(BLOCK);%對DCT系數矩陣進行反變換,得到嵌入水印後的載體
%圖像分塊BLOCK
I(x:x+K-1,y:y+K-1)=BLOCK;%用嵌入水印後的圖像分塊BLOCK代替載體圖像
%的對應分塊
End%水印圖像列循環結束
End%水印圖像行循環結束
%顯示嵌入水印後的圖像
subplot(1,3,3);
imshow(I);%顯示嵌入水印後圖像
title('嵌入水印後的圖像');
imwrite(I,'embedded.bmp','bmp');%將嵌入水印後圖像寫成bmp文件
夠詳細吧,希望對你有用。
Ⅳ 什麼是數字水印技術,有那些分類及其作用
----按水印的特性可以將數字水印分為魯棒數字水印和易損數字水印兩類。魯棒水印(robust
watermarking)主要用於在數字作品中標識著作權信息,利用這種水印技術在多媒體內容的數據中嵌入創建者、所有者的標示信息,或者嵌入購買者的標示(即序列號)。在發生版權糾紛時,創建者或所有者的信息用於標示數據的版權所有者,而序列號用於追蹤違反協議而為盜版提供多媒體數據的用戶。用於版權保護的數字水印要求有很強的魯棒性和安全性,除了要求在一般圖像處理(如:濾波、加雜訊、替換、壓縮等)中生存外,還需能抵抗一些惡意攻擊。
----易損水印(fragile
watermarking),與魯棒水印的要求相反,易損數字水印主要用於完整性保護,這種水印同樣是在內容數據中嵌入不可見的信息。當內容發生改變時,這些水印信息會發生相應的改變,從而可以鑒定原始數據是否被篡改。易損水印應對一般圖像處理(如:濾波、加雜訊、替換、壓縮等)有較強的免疫能力(魯棒性),同時又要求有較強的敏感性,即:既允許一定程度的失真,又要能將失真情況探測出來。必須對信號的改動很敏感,人們根據易損水印的狀態就可以判斷數據是否被篡改過。
----不同的應用需求造就了不同的水印技術。按水印的用途,我們可以將數字水印劃分為票證防偽水印、版權保護水印、篡改提示水印和隱蔽標識水印。
----票證防偽水印是一類比較特殊的水印,主要用於列印票據和電子票據、各種證件的防偽。一般來說,偽幣的製造者不可能對票據圖像進行過多的修改,所以,諸如尺度變換等信號編輯操作是不用考慮的。但另一方面,人們必須考慮票據破損、圖案模糊等情形,而且考慮到快速檢測的要求,用於票證防偽的數字水印演算法不能太復雜。
----版權標識水印是目前研究最多的一類數字水印。數字作品既是商品又是知識作品,這種雙重性決定了版權標識水印主要強調隱蔽性和魯棒性,而對數據量的要求相對較小。
----篡改提示水印是一種脆弱水印,其目的是標識原文件信號的完整性和真實性。
----隱蔽標識水印的目的是將保密數據的重要標注隱藏起來,限制非法用戶對保密數據的使用。
----按數字水印的隱藏位置,我們可以將其劃分為時(空)域數字水印、頻域數字水印、時/頻域數字水印和時間/尺度域數字水印。
----時(空)域數字水印是直接在信號空間上疊加水印信息,而頻域數字水印、時/頻域數字水印和時間/尺度域數字水印則分別是在dct變換域、時/
頻變換域和小波變換域上隱藏水印。
----隨著數字水印技術的發展,各種水印演算法層出不窮,水印的隱藏位置也不再局限於上述四種。應該說,只要構成一種信號變換,就有可能在其變換空間上隱藏水印。
按透明性劃分
按數字水印的透明性質,可分為可見水印和不可見水印兩種。可見水印就是人眼能看見的水印,比如照片上標記的拍照的日期或者電視頻道上的標識等。不可見水印就是人類視覺系統難以感知的,也是當前數字水印領域關注比較多的。