mark_prime=double(mark_prime); if size(mark_get)~=size(mark_prime)
error('Input vectors must be the same size!') else
[m,n]=size(mark_get); fenzi=0; fenmu=0; for i=1:m for j=1:n
fenzi=fenzi+mark_get(i,j)*mark_prime(i,j); fenmu=fenmu+mark_prime(i,j)*mark_prime(i,j); end end
N=min(fenzi/fenmu,fenmu/fenzi); end
psnr.m
%Name: Chris Shoemaker
%Course: EER-280 - Digital Watermarking
%Project: Calculates the PSNR (Peak Signal to Noise Ratio) % of images A and A', both of size MxN
function [A] = psnr(image,image_prime,M,N) % convert to doubles image=double(image);
image_prime=double(image_prime); % avoid divide by zero nastiness
if ((sum(sum(image-image_prime))) == 0)
error('Input vectors must not be identical') else
psnr_num=M*N*max(max(image.^2)); % calculate numerator psnr_den=sum(sum((image-image_prime).^2)); % calculate denominator A=psnr_num/psnr_den; % calculate PSNR
End return
实验作业三
LSB数字水印
一、LSB代码调试结果
1、水印嵌入(lsb_embed.m) 导出实验的所有图像
注意记录峰值信噪比PSNR参数值=55.8785 2、提取的信息(水印)(lsb_recover.m)
从嵌入水印的图片中提取嵌入的水印信息图片

