www.pudn.com > SVM.rar > svrwatermarkdetect.m
function [water]=svrwatermarkdetect(IP)
%svr水印检测,输入添加水印的图像,输出水印图像。
clc;
clear;
OriginalI=imread('lena.bmp');
figure,imshow(OriginalI);
%产生水印
InI=imread('ahdx.bmp');
figure,imshow(InI);
xm=100;
[m,n]=size(InI);
x=m*n;
for i=1:m
for j=1:n
IntI((i-1)*n+j,1)=InI(i,j);
end
end
sm=size(IntI,1);
[A,B,C,D]=randmatrix(xm,sm);
[IP]=svrwatermarktest(OriginalI,IntI,A,B,C,D);
psnr=PSNR(IP,OriginalI);
disp(psnr);
%加载水印
%高斯随机分布处理加水印后图像
%IP=waterfsp(IP);
%检测水印以下过程没有原始图像参与
[XP]=svrtest(IP,IntI,A,B,C,D);
for i=1:m*n
if(abs(IP(C(1,i),D(1,i))-XP(C(1,i),D(1,i)))<0.015)
waterl(i)=0;
else
if(abs(IP(C(1,i),D(1,i))-XP(C(1,i),D(1,i)))>=0.015 && abs(IP(C(1,i),D(1,i))-XP(C(1,i),D(1,i)))<=0.1 )
waterl(i)=1;
else
waterl(i)=0;
end
end
end
for i=1:m
for j=1:n
water(i,j)=waterl((i-1)*n+j);
end;
end;
figure,imshow(water);
ber=BER(InI,water);
disp(ber);