一、簡介
在影像隱寫分析中,這幾個特征是比較經典的
影像隱寫分析中DCT特征與Markov特征展現出了極大的潛力,小波變換的奇異值分解(Wavelet Singular Value Decomposition , WSVD)特征也有奇效,本文實作前人論文的特征提取編程代碼,
先說說理論知識
1 擴展DCT統計特征提取
大多數的隱密演算法都是對JPEG影像的DCT系數進行操作,以此來嵌入秘密資訊,DCT系數統計特征,旨在捕捉DCT系數的統計量的特征,以此來區分載體影像和隱密影像,
DCT系數統計演算法由Fridrich【1】提出,其中包含了DCT系數直方圖,共生矩陣,空域塊間相關性等部分,首先用DCT系數替換相同位置的原始影像像素,使用dij(k) 來表示DCT系數矩陣,其中i,j=1, … ,8,k=1, … ,nB,而dij(k)則代表的是在第k個8×8 DCT塊中處于(i,j)位置的DCT系數,而DCT塊一共有nB 塊,為了減少計算量和特征維度,在計算特征之前需要進行預處理,將所有DCT系數值范圍限定在[-5,5]之間,大于和小于該范圍內的值全部變換為-5到+5之間,

其中,Ir和Ic表示影像DCT系數塊的兩種排列方式,分別是行掃描順序和列掃描順序,
接下來的兩個特征Bα是從解壓的JPEG影像中計算,也是一種塊間相關性的特征:

在DCT系數統計的隱密分析中,Fridrich首次提出了用于隱密分析的“校準”概念和計算原理:特征計算函式F,訓練或測驗影像J1,將影像J1解壓到空域并沿各個方向裁剪四個像素,然后使用同J1相同的量化表壓縮得到的影像J2,f表示最侄訓取的特征,而最后的特征由f=F(J1)-F(J2)計算得到,
采用如此計算方式的原理如下:裁剪之后的影像和原始影像內容上大體上完全一致,雖然裁剪之后的影像失去了原來的DCT分塊,但是其統計特征應與原來相差不多,而這個程序會對嵌入的資訊十分敏感,使裁剪前后的特征差別較大,經過實驗證明,如此提取特征的方法非常有效果,
總結來說,DCT系數統計特征對DCT系數全域和區域進行了統計分析,并且捕獲DCT系數的塊間相關性和空域像素的相關性等特征,對于JPEG影像來說,所有隱密演算法都是針對DCT系數進行修改,該演算法確實是有一定的效果,實驗中,該特征集展現了不錯的分析效果,在0.2的嵌入率情況下可以達到平均95%的準確率,但是對MB演算法的效果一般,尤其是MB2,
原始DCT統計特征已經有一定的檢測效果,本文先對其進行擴展,加強特征的檢測效果,對于全域直方圖函式H,可以得到范圍在[-5,+ 5]中的元素個數的差異,包括全域直方圖和區域直方圖,區域直方圖選擇的位置為{(1, 2),(2, 1),(3, 1),(2, 2),(1, 3)}, 因此,直方圖特征是:

如此的DCT擴展特征共有193維,其特征組成見下表,

二、源代碼
clc;
clear;
msgfid=fopen('hidden.txt','r');%%打開秘密檔案,讀入秘密資訊
[msg,count]=fread(msgfid);
count=count*8;
alpha=0.02;
fclose(msgfid);
msg=str2bit(msg)';
[len col]=size(msg);
io=imread('lena.bmp');%讀取載體影像
io=double(io)/255;
output=io;
i1=io(:,:,1);%取影像的一層來隱藏
T=dctmtx(8);%對影像進行分塊
DCTrgb=blkproc(i1,[8 8],'P1*x*P2',T,T');%對影像分塊進行DCT變換
[row,col]=size(DCTrgb);
row=floor(row/8);
col=floor(col/8);
% 順序資訊嵌入
temp=0;
for i=1:count;
if msg(i,1)==0
if DCTrgb(i+4,i+1)<DCTrgb(i+3,i+2) %選擇(5,2)和(4,3)這一對系數
temp=DCTrgb(i+4,i+1);
DCTrgb(i+4,i+1)=DCTrgb(i+3,i+2);
DCTrgb(i+3,i+2)=temp;
end
else
if DCTrgb(i+4,i+1)>DCTrgb(i+3,i+2)
temp=DCTrgb(i+4,i+1);
DCTrgb(i+4,i+1)=DCTrgb(i+3,i+2);
DCTrgb(i+3,i+2)=temp;
end
end
if DCTrgb(i+4,i+1)<DCTrgb(i+3,i+2)
DCTrgb(i+4,i+1)=DCTrgb(i+4,i+1)-alpha;%將原本小的系數調整更小,使得系數差別變大
else
DCTrgb(i+3,i+2)=DCTrgb(i+3,i+2)-alpha;
end
end
三、運行結果

四、備注
完整代碼或者代寫添加QQ912100926
往期回顧>>>>>>
【影像壓縮】影像處理教程系列之影像壓縮【Matlab 074期】
【影像分割】影像處理教程系列之影像分割(一)【Matlab 075期】
【影像分割】影像處理教程系列之影像分割(二)【Matlab 076期】
【模式識別】銀行卡號之識別【Matlab 077期】
【模式識別】指紋識別【Matlab 078期】
【影像處理】基于GUI界面之DWT+DCT+PBFO改進影像水印隱藏提取【Matlab 079期】
【影像融合】CBF演算法之影像融合【Matlab 080期】
【影像去噪】自適應形態學之影像去噪【Matlab 081期】
【影像增強】DEHAZENET和HWD之水下去散射影像增強【Matlab 082期】
【影像增強】PSO尋優ACE之影像增強【Matlab 083期】
【影像重建】ASTRA演算法之影像重建【Matlab 084期】
【影像分割】四叉樹之影像分割【Matlab 085期】
【影像分割】心臟中心線之提取【Matlab 086期】
【影像識別】SVM植物葉子之疾病檢測和分類【Matlab 087期】
【影像識別】基于GUI界面之模板匹配手寫數字識別系統【Matlab 088期】
【影像識別】基于GUI界面之不變矩的數字驗證碼識別【Matlab 089期】
【影像識別】條形碼識別系統【Matlab 090期】
【影像識別】基于GUI界面RGB和BP神經網路之人民幣識別系統【Matlab 091期】
【影像識別】CNN卷積神經網路之驗證碼識別【Matlab 092期】
【影像分類】極限學習分類器之對遙感影像分類【Matlab 093期】
【影像變換】DIBR-3D之影像變換【Matalb 094期】
【影像分割】模糊聚類演算法之FCM影像分割【Matlab 095期】
【模式識別】銀行監控系統之人臉識別【Matlab 096期】
【模式識別】基于GUI界面之疲勞檢測系統【Matlab 097期】
【影像識別】國外車牌識別【Matlab 098期】
【影像分割】最大類間方差法(otsu)之影像分割【Matlab 099期】
【影像分割】直覺模糊C均值聚類之影像分割IFCM【Matlab 100期】
【影像分割】基于matlab形態學重建和過濾改進FCM演算法(FRFCM)之影像分割【Matlab 101期】
【影像增強】區域對比度增強CLAHE演算法之直方圖增強【Matlab 102期】
【影像融合】Frequency Partition之影像融合【Matlab 103期】
【影像評價】SVM之影像無參考質量評價【Matlab 104期】
【影像邊緣檢測】最小二乘法用于橢圓邊緣檢測【Matlab 105期】
【影像加密】基于GUI界面之混沌系統影像加密解密【Matlab 106期】
【影像配準】SIFT演算法之影像配準【Matlab 107期】
【影像分割】隨機游走演算法用于影像分割【Matlab 108期】
【影像分割】形態學重建和過濾改進FCM演算法(FRFCM)用于影像分割【Matlab 109期】
【影像分割】影像分割IFCM之直覺模糊C均值聚類【Matlab 110期】
【影像增強】區域相似變換函式與蜻蜓演算法之灰度影像增強【Matlab 111期】
【影像直線擬合】最小二乘法之影像直線擬合【Matlab 112期】
【影像去霧】暗通道之影像去霧【Matlab 113期】
【影像識別】基于matlab GUI界面之路面裂縫識別【Matlab 114期】
【影像識別】身份證號碼之識別【Matlab 115期】
【影像聚類】FCM和改進之FCM腦部CT影像聚類【Matlab 116期】
【影像評價】CCF演算法之影像質量評價【Matlab 117期】
【影像分割】蟻群優化模糊聚類之影像分割【Matlab 118期】
【模式識別】基于GUI界面之水果檢測系統【Matlab 119期】
【模式識別】基于GUI界面之水果分類系統【Matlab 120期】
【模式識別】基于GUI界面之水果分級系統【Matlab 121期】
【模式識別】人臉識別之檢測臉、眼、鼻子和嘴【Matlab 122期】
【影像處理】基于 GUI界面之影像加解密【Matlab 124期】
【模式識別】基于GUI界面BP網路之手寫體大寫字母識別【Matlab 125期】
【影像分割】基于GUI界面之醫學影像分割【Matlab 126期】
【圖頻處理】基于GUI界面之環影像處理與音樂播放系統【Matlab 127期】
【影像隱藏】基于Laguerre 變換之影像隱藏【Matlab 128期】
【影像處理】基于dwt函式之實作二維小波變換【Matlab 129期】
【影像處理】分形插值演算法之調換圖片【Matlab 130期】
【影像邊緣檢測】基于GUI界面之影像邊緣檢測系統【Matlab 131期】
【影像分割】基于GUI界面之彩色影像分割【Matlab 132期】
【影像去噪】基于GUI界面之影像濾波去噪【Matlab 133期】
【影像幾何運算】基于GUI界面之影像幾何運算系統【Matlab 134期】
【影像處理】基于GUI界面之影像處理系統【Matlab 135期】
【影像識別】基于matlab之細胞識別和邊緣檢測【Matlab 136期】
【模式識別】反饋神經Hopfield的數字識別【Matlab 172期】
【模式識別】指紋影像細節特征提取 【Matlab 173期】
【影像分割】RGB HSV YCbCr Lab顏色空間人臉檢測之影像分割【Matlab 174期】
【影像壓縮】小波變換之影像壓縮【Matlab 175期】
【模式識別】基于GUI界面的火災檢測【Matlab 230期】
【模式識別】基于Hough變換的答題卡識別【Matlab 231期】
【模式識別】二值膨脹差分和椒鹽濾波之教室內人數識別系統【Matlab 232期】
【小波變換】基于GUI界面DWT與SVD演算法的數字水印 【Matlab 233期】
【模式識別】基于GUI界面的指標式表盤識別【Matlab 234期】
【模式識別】基于Hough變換圖片車道線檢測 【Matlab 235期】
【影像分割】粒子群優化T熵影像分割【Matlab 236期】
【影像分割】粒子群優化指數熵影像分割【Matlab 237期】
【影像分割】粒子群優化指數熵影像分割【Matlab 238期】
【模式識別】基于GUI貝葉斯最小錯誤率手寫數字識別【Matlab 239期】
【模式識別】PCA手寫數字識別【Matlab 240期】
【模式識別】特征匹配的英文印刷字符識別【Matlab 241期】
【模式識別】知識庫的手寫體數字識別【Matlab 242期】
【模式識別】銀行卡數字識別【Matlab 243期】
【邊緣檢測】插值法亞像素邊緣檢測【Matlab 248期】
【影像識別】表情檢測【Matlab 288期】
【影像檢測】LSD直線檢測【Matlab 289期】
【影像融合】紅外與可見光的融合與配準演算法【Matlab 290期】
【影像識別】幀差法跌倒檢測【Matlab 291期】
【影像識別】組合BCOSFIRE過濾器進行墻體裂縫識別【Matlab 292期】
【模式識別】中值濾波和二值化的跌倒檢測【Matlab 293期】
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/264157.html
標籤:其他
