实用标准文档clear all;close all;clc;V=double(imread('D:\lena\lena
jpg'));imshow(mat2gray(V));[i u]=size(V); %计算 V 的规格r=100; %设置分解矩阵的秩W=rand(i,r) %初始化 WH,为非负数H=rand(r,u)maviter=100; %最大迭代次数for iter=1:maviter W=W
/(W*H))*H'); %注意这里的三个公式和文中的是对应的 W=W
/(ones(i,1)*sum(W)); H=H
*(W'*(V
/(W*H)));endimg_V=W*H;figure;imshow(mat2gray(img_V));首先读入原始图象并设置参数,然后嵌入水印信息,程序代码如下:clear%size=256;block=8;blockno=size/block;LENGTH=size*size/64;Alpha1=0
02; Alpha2=0
1; T1=3; I=zeros(size,size); D=zeros(size,size);BW=zeros(size,size); block_dct1=zeros(block,block);%产生水印序列并对其排序randn('seed',10);watermark1=randn(1,LENGTH);subplot(2,2,1);plot(watermark1);title('watermarc:Gaussian noise');文案大全实用标准文档subplot(2,2,3);title('edge of origine image')[Y0,I0]=sort(watermark1);%%读