dct


%Scriptfile:dctblock.m
%
%Purpose:analgorithm
toachievetheembedingwatermarkingtoaimageby
%dctbloking
andhvs,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,blockbreak
andconvertablockintoacolumnvector%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
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:analgorithm
toachievetheembedingwatermarkingtoaimageby
%dctbloking
andhvs,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,blockbreak
andconvertablockintoacolumnvector%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%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)))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值