1 简介
文章对DCT(离散余弦变换)和FFT域图像数字水印算法进行了研究,并用matlab工具进行实验,结果表明该算法使水印的嵌入达到了较好的鲁棒性和不可见性.
2 部分代码
function [message_vector,Mo,No] = dwtrecover(watermrkd_img,k,message)watermarked_image= watermrkd_img;% determine size of watermarked imageMw=size(watermarked_image,1); %HeightNw=size(watermarked_image,2); %WidthOw=size(watermarked_image,3);% read in original watermarkorig_watermark=double(message);% determine size of original watermarkMo=size(orig_watermark,1); %HeightNo=size(orig_watermark,2); %Width% read in key for PN generatorfile_name='_key.bmp';key=double(imread(file_name))./256;% reset MATLAB's PN generator to state "key"j = 1;for i =1:length(key)rand('state',key(i,j));endmessage_vector=ones(1,Mo*No);[cA1,cH1,cV1,cD1] = dwt2(watermarked_image,'haar');% add pn sequences to H1 and V1 componants when message = 0for (kk=1:length(message_vector))pn_sequence_h=round(2*(rand(Mw/2,Nw/2,Ow)-0.5));pn_sequence_v=round(2*(rand(Mw/2,Nw/2,Ow)-0.5));if (message(kk) == 0)% cH1(:,:,1)=cH1(:,:,1)+k*pn_sequence_h;% cV1(:,:,1)=cV1(:,:,1)+k*pn_sequence_v;cH1=cH1+k*pn_sequence_h;cV1=cV1+k*pn_sequence_v;endcor_h(kk)=corr2(pn_sequence_h(:,:,1),cH1(:,:,1));cor_v(kk)=corr2(pn_sequence_v(:,:,1),cV1(:,:,1));if cor_h(kk) > cor_v(kk)message_vector(kk)=0;elsemessage_vector(kk)=1;endendend
3 仿真结果


4 参考文献
[1]吴和静, 闵昆龙, 刘芳,等. 基于DCT域的图像数字水印算法及matlab实现[J]. 中国科技信息, 2014(9):2.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
本文探讨了离散余弦变换(DCT)和快速傅立叶变换(FFT)在图像数字水印算法中的应用,通过Matlab实验展示了其在提高水印嵌入的鲁棒性和不可见性方面的效果。作者分享了关键代码段,包括使用DWT嵌入 PN 序列,并提供了实验仿真结果。
1086

被折叠的 条评论
为什么被折叠?



