?? wavedetect.m
字號:
%文件名:wavedetect.m
%程序員:郭遲
%編寫時間:2003.10.7
%函數功能:本函數將完成W-svd模型下數字水印的檢測
%輸入格式舉例:[corr_coef,corr_DCTcoef]=wavedetect('c:\test.png','c:\lenna.jpg',1983,'db6',2,0.1,0.99)
%參數說明:
%input為輸入原始圖像
%seed為隨機數種子
%wavelet為使用的小波函數
%level為小波分解的尺度
%alpha為水印強度
%ratio為算法中d/n的比例
%corr_coef,corr_DCTcoef分別為不同方法下檢測出的相關系數
function [corr_coef,corr_DCTcoef]=wavedetect(test,original,seed,wavelet,level,alpha,ratio)
%function realCA=wavedetect(test,original,seed,wavelet,level,alpha,ratio)
dataoriginal=imread(original);
datatest=imread(test);
dataoriginal=double(dataoriginal)/255;
datatest=double(datatest)/65535;
dataoriginal=dataoriginal(:,:,1);
datatest=datatest(:,:,1);
%提取加有水印的圖像的小波低頻系數
[watermarkimagergb,watermarkimage,waterCA,watermark2,correlationU,correlationV]=wavemarksvd2(original,'temp.png',seed,wavelet,level,alpha,ratio);
%提取待測圖像的小波低頻系數
[C,S]=wavedec2(datatest,level,wavelet);
CA_test=appcoef2(C,S,wavelet,level);
%提取原始圖像的小波低頻系數
[C,S]=wavedec2(dataoriginal,level,wavelet);
realCA=appcoef2(C,S,wavelet,level);
%生成兩種水印
realwatermark=waterCA-realCA;
testwatermark=CA_test-realCA;
%計算相關性
corr_coef=trace(realwatermark'*testwatermark)/(norm(realwatermark,'fro')*norm(testwatermark,'fro'));
%DCT 系數比較
DCTrealwatermark=dct2(waterCA-realCA);
DCTtestwatermark=dct2(CA_test-realCA);
DCTrealwatermark=DCTrealwatermark(1:min(32,max(size(DCTrealwatermark))),1:min(32,max(size(DCTrealwatermark))));
DCTtestwatermark=DCTtestwatermark(1:min(32,max(size(DCTtestwatermark))),1:min(32,max(size(DCTtestwatermark))));
DCTrealwatermark(1,1)=0;
DCTtestwatermark(1,1)=0;
corr_DCTcoef=trace(DCTrealwatermark'*DCTtestwatermark)/(norm(DCTrealwatermark,'fro')*norm(DCTtestwatermark,'fro'));
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -