• Elrlr
    了解作者
  • matlab
    开发工具
  • 2KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 1
    下载次数
  • 2017-05-19 08:27
    上传日期
这是本人自己遍的matlab程序,即对做过fft变换的相位嵌入水印的程序,
pdlctte.rar
  • 2phase_extract.m
    4.8KB
  • Vphase_embed.m
    8.6KB
内容介绍
function Angle = phase_embed(I,W) % embed wm basd on phase I=imread('lena256.bmp'); subplot(121),imshow(I); W=randn(1,12); save W W %load W W s2=size(W); % Angle_blk=blkproc(I,[8 8],'dct2'); % Angle_blk1=Angle_blk(1:32,1:32); FFT=fftshift(fft2(single(I))); A=angle(FFT); M=abs(FFT); s1=size(I); m=ceil(s1(1)/2)+1; n=ceil(s1(2)/2)+1; R1=ceil(m/5); R2=R1+s2(2); flat(s1(1),s1(2))=0; r=R1; k=1; while(k<=s2(2)) for i=1:32 for j=1:32 if i==m&&j==n for x=-r:0 % the fist 1/4 yuan,phase embed for y=0:r if A(i,j)>=0 if (x^2+y^2==r^2) if flat(i+x,j+y)==0 mm=fix(A(i+x,j+y)/(A(i+y,j-x)*0.5)); m=mod(mm,2); if W(k)==1 if m==1 A(i+x,j+y)=mm*A(i+y,j-x)*0.5; flat(i+x,j+y)=1; flat(i+y,j-x)=1; else % m is even A(i+x,j+y)=(mm+1)*A(i+y,j-x)*0.5; flat(i+x,j+y)=1; flat(i+y,j-x)=1; end end if W(k)==-1 if m==1 A(i+x,j-y)=(mm+1)*A(i+y,j-x)*0.5; flat(i+x,j+y)=1; flat(i+y,j-x)=1; else A(i+x,j+y)=mm*A(i+y,j-x)*0.5; flat(i+x,j+y)=1; flat(i+y,j-x)=1; end end end else continue; end % (x^2+y^2==r^2) else % A(i,j)<0 if (x^2+y^2==r^2) if flat(i+x,j+y)==0 mm=fix(A(i+x,j+y)/(A(i+y,j-x)*0.5)); m=mod(mm,2); if W(k)==1 if m==1 A(i+x,j+y)=(-mm)*A(i+y,j-x)*0.5; flat(i+x,j+y)=1; flat(i+y,j-x)=1; else A(i+x,j+y)=(-mm-1)*A(i+y,j-x)*0.5; flat(i+x,j+y)=1; flat(i+y,j-x)=1; end end if W(k)==-1 if m==1 A(i+x,j+y)=(-mm-1)*A(i+y,j-x)*0.5; flat(i+x,j+y)=1; flat(i+y,j-x)=1; else A(i+x,j+y)=(-mm)*A(i+y,j-x)*0.5; flat(i+x,j+y)=1; flat(i+y,j-x)=1; end end end else %(x^2+y^2==r^2) continue; end end %A(i,j)>=0 end end for x=r:-1:0 % the 3/4 yuan ,phase embed for y=0:-1:-r if A(i,j)>=0 if x^2+y^2==r^2 if flat(i+x,j+y)==0 mm=fix(A(i+x,j+y)/(A(i+y,j-x)*0.5)); m=mod(mm,2); if W(k)==1 if mm==1 A(i+x,j+y)=mm*A(i+y,j-x)*0.5; flat(i+x,j+y)=1; flat(i+y,j-x)=1; else A(i+x,j+y)=(mm+1)*A(i+y,j-x)*0.5; flat(i+x,j+y)=1; flat(i+y,j-x)=1; end end if W(k)==-1 if mm==1 A(i+x,j+y)=-(mm)*A(i+y,j-x)*0.5; flat(i+x,j+y)=1; flat(i+y,j-x)=1; else A(i+x,j+y)=(-mm-1)*A(i+y,j-x)*0.5; flat(i+x,j+y)=1; flat(i+y,j-x)=1; end end end %flat(i+x,j+y)==0 else continue; end else % A(i,j)<0 if (x^2+y^2==r^2) if flat(i+x,j+y)==0 mm=fix(A(i+x,j+y)/(A(i+y,j-x)*0.5)); m=mod(mm,2); if W(k)==1 if m==1 A(i+x,j+y)=(-mm)*A(i+y,j-x)*0.5; flat(i+x,j+y)=1; flat(i+y,j-x)=1; else A(i+x,j+y)=(-mm-1)*A(i+y,j-x)*0.5; flat(i+x,j+y)=1; flat(i+y,j-x)=1; end end if W(k)==-1 if m==1 A(i+x,j+y)=(-mm-1)*A(i+y,j-x)*0.5; flat(i+x,j+y)=1; flat(i+y,j-x)=1; else A(i+x,j+y)=(-mm)*A(i+y,j-x)*0.5; flat(i+x,j+y)=1; flat(i+y,j-x)=1; end end end else %(x^2+y^2==r^2) continue; end end %A(i,j)<0 end end else continue; end end end r=r+1; k=k+1; end %重构原图象 for i=1:s1
评论
    相关推荐
    • WaterMarkDemo.rar
      Matlab DFT+QIM水印 提取嵌入全过程
    • szsy.rar
      傅里叶数字水印算法实现,含有源码以及说明书
    • embed.rar
      基于FFT的数字图像水印技术,数字图像水印嵌入
    • ctdftembed.rar
      利用分块和随机序列的基于contourlet及DFT的水印嵌入算法
    • watermark.rar
      基于离散傅里叶变换域图像数字水印研究与仿真
    • 图像数字水印
      可直接运行的数字图像水印嵌入的matlab代码,简单易懂,绝对实用
    • witeymarking.rar
      这是本人自己遍的matlab程序,即对做过fft变换的相位嵌入水印的程序,
    • 788605.rar
      这是本人自己遍的matlab程序,即对做过fft变换的相位嵌入水印的程序,
    • 基于傅立叶变换的数字水印嵌入技术
      基于matlab平台完成,基于傅立叶变换的数字水印嵌入技术源码。可供参考。
    • codesforimageprocessing.rar
      实现简单图像处理,包括256色转灰度图、Hough变换、Walsh变换、中值滤波、二值化变换、亮度增减、傅立叶变换、反色、取对数、取指数、图像平移、图像旋转、图像细化、图像缩放、图像镜像、均值滤波、对比度拉伸、拉普拉斯锐化(边缘检测)、方块编码、梯度锐化、灰度均衡、直方图均衡、离散余弦变换、维纳滤波处理、逆滤波处理、阈值变换、高斯平滑。