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);