📄 qual_det1.m
字号:
function [w1,w2,w3,w4,A]=qual_det1(coef,M,delta)%delta量化步长,M为多分辨水印的尺寸2倍
N=size(coef,1);
a=1;b=1;c=1;d=2;K=100;%a,b,c,K是密钥,其中d满足ad-bc=1.
numda=0.618; %numda黄金分割数0.618
A=zeros(N,N);
for i=1:M
for j=1:M
x(1)=i;y(1)=j;
for k=1:K-1
x(k+1)=mod(a*x(k)+b*y(k),N);%水印的嵌入位置由具有混沌特性的Arnold映射确定
y(k+1)=mod(c*x(k)+d*y(k),N);
end
if x(K)==0
x(K)=N;
end
if y(K)==0%在增加水印安全性的同时还解决了水印嵌入位置冲突的问题
y(K)=N;
end
%对嵌入位置的小波系数的量化
m=x(K);
n=y(K);
A(m,n)=1;
r=fix(coef(m,n)/delta);
if mod(r,2)==0
W(i,j)=((1-sign(coef(m,n)))/2);%uint8
else W(i,j)=((1+sign(coef(m,n)))/2);%uint8
end
end
end
% w1=uint8(W(1:M/2,1:M/2));
% w2=uint8(W(1:M/2,M/2+1:M));
% w3=uint8(W(M/2+1:M,1:M/2));
% w4=uint8(W(M/2+1:M,M/2+1:M));
w1=(W(1:M/2,1:M/2));
w2=(W(1:M/2,M/2+1:M));
w3=(W(M/2+1:M,1:M/2));
w4=(W(M/2+1:M,M/2+1:M));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -