
%Scriptfile:dctblock.m
%
%Purpose:analgorithmtoachievetheembedingwatermarkingtoaimageby
%dctblokingandhvs,thendetectthewatermarkingby
%comparability.
%
%
%Recordofrevisions:
%DateProgrammerDescriptionofchange
%===================================
%11/19/03MaoLiOriginalcode
%Definevariables:
%a0--Originalgrayimagematrix
%a1--Embededgrayimagematrix
%da0--thedctoriginalgrayimagematrix
%ca0--thecolumnvectorofa0
%cda0--thecolumnvectorofda0
%cda1--theembededcolumnvectorofcda0
%da1--theimagematrixofcda1
%r--imagematrixrow
%c--imagematrixcolumn
%k--thenumberofblocks
%i--thesubscriptofamatrix
%SNR--thesimilaritydegree
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%inputoriginaldata,blockbreakandconvertablockintoacolumnvector%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear;
clc;
a0=imread('c:oat.png');
%a0=rgb2gray(a0);
[r,c]=size(a0);
k=(r*c/64);
da0=blkproc(a0,[8,8],'dct2');
ca0=im2col(a0,[8,8],'distinct');
cda0=im2col(da0,[8,8],'distinct');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%producethewatermarkingsignal(randomsequence)%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
randn('state',110);
w0=randn(1,5120);
w0=reshape(w0,5,1024);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%changingsubmultiple%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
alpha=0.02;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%embedthewatermarkingintothelowfrequencescoefficients%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cda1=cda0;
fori=1:k
cda1(2,i)=cda0(2,i)+alpha*w0(1,i);
cda1(3,i)=cda0(3,i)+alpha*w0(2,i);
cda1(9,i)=cda0(9,i)+alpha*w0(3,i);
cda1(10,i)=cda0(10,i)+alpha*w0(4,i);
cda1(17,i)=cda0(17,i)+alpha*w0(5,i);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%reconstructthewatermarking%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
da1=col2im(cda1,[8,8],[r,c,],'distinct');
a1=blkproc(da1,[8,8],'idct2');
figure;
subplot(1,2,1),imshow(a0,[]),title('theoriginalimage');
subplot(1,2,2),imshow(a1,[]),title('theembededimage');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%detectthewatemarking%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
dca0=blkproc(a0,[8,8],'dct2');
dca1=blkproc(a1,[8,8],'dct2');
cdca0=im2col(dca0,[8,8],'distinct');
cdca1=im2col(dca1,[8,8],'distinct');
fori=1:k
w1(1,i)=(cdca1(2,i)-cdca0(2,i))/alpha;
w1(2,i)=(cdca1(3,i)-cdca0(3,i))/alpha;
w1(3,i)=(cdca1(9,i)-cdca0(9,i))/alpha;
w1(4,i)=(cdca1(10,i)-cdca0(10,i))/alpha;
w1(5,i)=(cdca1(17,i)-cdca0(17,i))/alpha;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%calculatethesimilaritydegree%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SNR1=sum(sum(w0.*w1))/sqrt(sum(sum(w1.^2)))

%Scriptfile:dct_high.m
%
%Purpose:analgorithmtoachievetheembedingwatermarkingtoaimageby
%dctblokingandhvs,thendetectthewatermarkingby
%comparability.
%
%
%Recordofrevisions:
%DateProgrammerDescriptionofchange
%===================================
%11/25/03MaoLiOriginalcode
%Definevariables:
%a0--Originalgrayimagematrix
%a1--Embededgrayimagematrix
%da0--thedctoriginalgrayimagematrix
%ca0--thecolumnvectorofa0
%cda0--thecolumnvectorofda0
%cda1--theembededcolumnvectorofcda0
%da1--theimagematrixofcda1
%r--imagematrixrow
%c--imagematrixcolumn
%k--thenumberofblocks
%i--thesubscriptofamatrix
%SNR--thesimilaritydegree
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%inputoriginaldata,blockbreakandconvertablockintoacolumnvector%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%clear;
%clc;
a0=imread('c:oat.png');
%a0=rgb2gray(a0);
[r,c]=size(a0);
k=(r*c/64);
da0=blkproc(a0,[8,8],'dct2');
ca0=im2col(a0,[8,8],'distinct');
cda0=im2col(da0,[8,8],'distinct');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%producethewatermarkingsignal(randomsequence)%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
randn('state',110);
w0=randn(1,5120);
w0=reshape(w0,5,1024);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%changingsubmultiple%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
alpha=0.02;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%embedthewatermarkingintothelowfrequencescoefficients%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cda1=cda0;
fori=1:k
cda1(48,i)=cda0(48,i)+alpha*w0(1,i);
cda1(55,i)=cda0(55,i)+alpha*w0(2,i);
cda1(56,i)=cda0(56,i)+alpha*w0(3,i);
cda1(62,i)=cda0(62,i)+alpha*w0(4,i);
cda1(63,i)=cda0(63,i)+alpha*w0(5,i);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%reconstructthewatermarking%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
da1=col2im(cda1,[8,8],[r,c,],'distinct');
a1=blkproc(da1,[8,8],'idct2');
figure;
subplot(1,2,1),imshow(a0,[]),title('theoriginalimage');
subplot(1,2,2),imshow(a1,[]),title('theembededimage');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%detectthewatemarking%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
dca0=blkproc(a0,[8,8],'dct2');
dca1=blkproc(a1,[8,8],'dct2');
cdca0=im2col(dca0,[8,8],'distinct');
cdca1=im2col(dca1,[8,8],'distinct');
fori=1:k
w1(1,i)=(cdca1(48,i)-cdca0(48,i))/alpha;
w1(2,i)=(cdca1(55,i)-cdca0(55,i))/alpha;
w1(3,i)=(cdca1(56,i)-cdca0(56,i))/alpha;
w1(4,i)=(cdca1(62,i)-cdca0(62,i))/alpha;
w1(5,i)=(cdca1(63,i)-cdca0(63,i))/alpha;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%calculatethesimilaritydegree%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SNR=sum(sum(w0.*w1))/sqrt(sum(sum(w1.^2)))
2871

被折叠的 条评论
为什么被折叠?



