天天看點

【圖像隐寫】基于matlab DCT彩色數字水印嵌入提取【含Matlab源碼 077期】

一、DCT數字水印簡介

1 前言

随着網絡通信技術的發展,社會節奏的加快,網絡通信技術的成熟,需求也開始發生改變,人們對便利的需求也越來越大,通過将媒體資訊數字化,使得資訊表達的精準和效率得到了明顯提升。數字化也可以實作資訊存儲的便利性,同時數字資訊也能友善和快速地通過電子裝置進行傳輸。是以,數字交換傳輸過程越來越簡易。

這樣的便利固然舒适,但是伴随的副作用也快速被發現,急切需要一種技術對密碼學進行補充。現如今網絡中時常出現的産權問題也被得到了重視。數字水印技術的出現大大緩解了這一情況,如若内容被進行了解密處理,這種新的資訊技術仍能發揮它的效用,繼續起到對資訊的保護作用。

2 數字水印算法的基本要求

2.1 數字水印的定義

數字水印技術進行工作的前提是,原始載體不能受到影響。默默保護資訊不被打擾不被發現是它的優勢。所謂的數字水印是需要在載體檔案中鑲嵌一些保護資訊,數字化的圖像、影像、文字都是載體檔案。也可以這樣認為,數字水印是采用擴頻通信手段在寬窄信道之間傳輸的一種水印信号。使用者可以通過識别載體檔案中的保護資訊來推斷初始資訊有沒有被篡改,還可以從中得到其中的隐含資訊。是以可以将水印信号表示為:

【圖像隐寫】基于matlab DCT彩色數字水印嵌入提取【含Matlab源碼 077期】

我們能夠利用序列來表示水印資訊,簡單和複雜的水印信号都有對應序列;其中一維和二維序清單示較為簡單的水印信号,三維或者多元的數組來表示比較複雜的水印信号。在式中A表示整個公式的一個取值範圍、M表示水印信号的長度。水印資訊一樣也可以使用數組來表示,數組的維數的多少代表資訊的複雜程度,一般一維序列是用來表示音頻檔案的;如果載體是圖像,那對應的水印就是二維數組;載體是動畫,相應的水印就是三維信号。

2.2 數字水印技術有以下四個方面的特點:

(1)安全性

資訊一定是需要安全來保證的,不管在任何應用領域中,這都會是最重要的需求之一。而數字水印不僅能夠保證資訊的安全還能保障資訊不被篡改和僞造。資訊的安全不僅展現在不被偷竊還展現在誤檢測率要較低。數字水印的資訊應該随着初始内容的改變而實時變化;數字水印的安全性越強則抵抗性越強。

(2)隐蔽性

資料在符合規則的使用情況下,不會使原本的保護的文字、圖像、音頻等得到降質,保證品質同時還很難被察覺,具有不可察覺的優勢。

(3)魯棒性

經過多次信号處理或者攻擊之後,水印資訊中的資料不被破壞,且識别結果也不會發生偏差,圖像很容易被攻擊就很容易将資訊洩露。平移、旋轉、剪切、濾波、量化、采樣、轉換等都是信号的處理過程。數字水印是将一些不能被看見的資訊嵌入到内容資料中,通常情況下是使用在版權保護中,或者用于保護内容資料的完整性。這也是數字水印保證資訊不被篡改的方式。這樣可以掩蓋原本的資訊将現有資訊進入到破壞者眼中,進而造成幹擾。

(4)水印容量

考慮到整個通信領域對于隐蔽性的要求偏高,并且需求不斷增長,是以數字水印的水印容量也根據該情況做出了相應的調整。在此調整的基礎上,水印容量也需要加強自身的能力,将自己承載資訊的能力變強,隻有這樣才能将圖像中所需要的資訊都嵌入都水印中。正是因為通信領域的獨特性,數字水印在這方面的努力也使得數字水印在這個領域中非常受歡迎,并且水印容量中所承載的資訊能夠将初始圖像的所有資訊都标明。版權糾紛就是因為所屬者辨別不清晰才會産生,這種做法可以盡可能防止這種糾紛的發生,還能夠保護數字産權合法擁有者的合法權益。

數字水印具有以上四個基本特征。正是由于數字水印有安全性、隐蔽性、魯棒性和數字水印這些特征,才在各式各樣的水印設計方案中得到最優解。一個理想的水印算法不但需要高隐蔽性,還需要有強抵禦力來面對各種攻擊。優秀的數字水印方案需要結合以上四點做出理性的選擇,隻有充分考慮到這四個特征才能在設計水印方案的時候完美切合實際需求。

2.3 DCT變換的數字水印的應用

DCT變換域算法在抵抗有損壓縮編碼和其他一些具有信号失真的資料處理過程有很好的表現,魯棒性和不可感覺性是難以同時滿足的兩個要求,但是基于DCT變換的數字水印算法能更好地滿足這兩個基本要求。針對DCT變換的數字水印算法,在下文中會進行詳細解釋。并對版權保護問題中利用DCT變換所需的方法及步驟做出介紹。

3 離散餘弦變換(DCT)算法介紹

3.1 傅裡葉變換緊密相關的數學運算是離散餘弦變換

DCT變換的基礎是傅裡葉變換,圖像信号需要通過二維數組的變換來實作。

【圖像隐寫】基于matlab DCT彩色數字水印嵌入提取【含Matlab源碼 077期】

反離散餘弦變換IDCT坐标公式:

【圖像隐寫】基于matlab DCT彩色數字水印嵌入提取【含Matlab源碼 077期】

其中:

【圖像隐寫】基于matlab DCT彩色數字水印嵌入提取【含Matlab源碼 077期】

3.2 DCT域系數分析

根據上式的計算方法可以得到64個系數,左上方位置的式直流分量(DC分量)。去除左上角的位置坐标的其他坐标系數都稱為交流分量(AC分量)。隻要加入大量的水印資訊都不會使得水印之後的圖像與初始圖像對比之後在視覺上都不會産生較大差别,此時的感覺容量即為最大,這個位置也是最适合在這64個DCT系統中添加水印資訊的位置,同時還能夠確定在經過惡意攻擊之後,圖像依舊可以完整的提取水印資訊。魯棒性較高的區域剛好位于人們視覺敏感區域,此時的信号在資訊處理過程中很難被除掉。

4 基于DCT變換技術的數字水印算法的應用步驟

對于彩色圖檔,基本DCT算法的流程是,首先将RGB圖檔轉成YUV格式,然後再将圖像矩陣分成互不重疊的8*8塊,DCT子產品對其中的Y分量,而後經YUV2 RGB輸出嵌入後的RGB流。流程圖如圖1。

【圖像隐寫】基于matlab DCT彩色數字水印嵌入提取【含Matlab源碼 077期】

圖1 水印算法流程圖

具體嵌入方法為:讀取水印資訊w(這裡w取1或-1),按公式更改s系數的值,其中T是標明的門檻值。數字水印是将一些不能被看見的資訊嵌入到内容資料中,通常情況下是可以護内容資料的完整性。

擴頻原理的疊加使用,是水印技術保證并更新DCT算法的可靠性的優質方案,用來滿足數字水印設計方案的需求。DCT變換的最佳獨特之處就在于,普通的資訊隻能将塊狀的資訊彙聚在少量的低頻DCT系數中,如此僅少量系數可以變換,還不會對圖像的品質有危害。當分塊的運算出現時,使得圖像嵌入更為簡易。是以DCT變換在低頻中更适用,高頻編碼是容易被各種處理方法破壞使用,不被使用。擴頻技術實作起來還是比較簡單的,目前人們正在研究的數字水印算法更多的是基于變換域的,而這些變換域主要以頻域為主,在空域算法方面,彌補了不足。

【圖像隐寫】基于matlab DCT彩色數字水印嵌入提取【含Matlab源碼 077期】

圖2 原圖與嵌入水印後的圖像

5 水印的提取

當水印資訊嵌入到圖像之後,需要通過DCT變換等比較系統的方式将水印提取出來。

(1)基于DCT變換對含水印資訊的數字作品進行變換。

(2)最佳嵌入區域需要根據嵌入算法來找到嵌入區域。

(3)按照水印嵌入時的基本規則将二進制數組和三元數組兩者的數值對比之後,就可以确定水印資訊值了。

(4)将确定的水印資訊值經過變換之後就可得到提取出的水印資訊。

6 DCT水印攻擊實驗分析

從直覺的角度觀察水印的感覺透明度就是DCT水印的攻擊測試。

(1)本次分析主要對圖像嵌入水印序列,之後再對已經加入水印的圖像進行水印的提取。通過實驗可以得出基于DCT變換後的數字水印算法的透明性有明顯改善。

(2)以惡意攻擊實驗的方式,來驗證數字水印算法在數字媒體當中的作用。能否使得版權資訊得到保護;能不能快速并且有效的将資訊提取出來;嵌入的水印經過攻擊後是否可以完整的提取。

二、部分源代碼

三、運作結果

【圖像隐寫】基于matlab DCT彩色數字水印嵌入提取【含Matlab源碼 077期】

四、matlab版本及參考文獻

1 matlab版本

2014a

2 參考文獻

[1]韓紀慶,張磊,鄭鐵然.語音信号處理(第3版)[M].清華大學出版社,2019.

[2]柳若邊.深度學習:語音識别技術實踐[M].清華大學出版社,2019.