⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qual_emb1.m

📁 multi_wavelet An Image Digital Watermarking Algorithm Based on Bit-Plane-Decomposition and Multi-
💻 M
字号:
function  [Q_coef,A]=qual_emb1(w1,w2,w3,w4,coef,delta)%delta量化步长
         W=[w1,w2;w3,w4];
         M=size(W,1);
         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
        Q_f=zeros(N,N);
        A=zeros(N,N);
 for i=1:M
     for j=1:M
         x(1)=i;y(1)=j;%x,y的值为始点
           for k=1:K-1%水印的嵌入位置由具有混沌特性的Arnold映射确定
               x(k+1)=mod(a*x(k)+b*y(k),N);%x,y的初值,递归求x(K)值
               y(k+1)=mod(c*x(k)+d*y(k),N);
           end
             if  x(K)==0%避免x下标为0
                 x(K)=N;
             end 
             if  y(K)==0%避免y下标为0
                 y(K)=N;%在增加水印安全性的同时还解决了水印嵌入位置冲突的问题
             end
                 %对嵌入位置的小波系数的量化
                 m=x(K);%K不变,固定位置,但不同层时v3,v2,v1,使N变x(K)值变
                 n=y(K)
                 A(m,n)=1;%返回后不用,仅起标志位作用
                 r=fix(coef(m,n)/delta);
                 if      mod(r,2)==0 %提取时就用此段
                           Q_f(m,n)=((1-sign(coef(m,n)))/2);%uint8
                 else      Q_f(m,n)=((1+sign(coef(m,n)))/2);%uint8
                 end
                %修改嵌入位置的小波系数:coef(m,n)
              if W(i,j)~=Q_f(m,n)
                   if abs( coef(m,n)-fix(coef(m,n)/delta)*delta)>=delta/2 
                      coef(m,n)= fix(coef(m,n)/delta)*delta+sign(coef(m,n))*(2-numda)*delta; 
                   else
                      coef(m,n)= fix(coef(m,n)/delta)*delta-sign(coef(m,n))*(1-numda)*delta;  
                   end
              end
         end        
 end
 for i1=1:N
      for j1=1:N
          Q_coef(i1,j1)=coef(i1,j1);%整理输出
      end
 end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -