【图像隐藏】基于LDPC编码译码结合DCT算法实现图像水印嵌入提取含Matlab源码

网友投稿 379 2022-09-07


【图像隐藏】基于LDPC编码译码结合DCT算法实现图像水印嵌入提取含Matlab源码

1 简介

根据数字水印系统与通信系统的相似性,借助通信中的LDPC码和交织技术可提高盲水印算法的鲁棒性.在DCT域设计并实现了一种盲数字水印算法.该算法采用LDPC码作为水印信道编码,对图像水印传输进行差错控制,把通过LDPC码编码后的水印序列嵌入原始图像频域,在提取时采用LDPC码的迭代译码算法.实验结果表明:该算法对于常见的图像攻击具有很强的鲁棒性,并且具有很好的视觉不可见性.

2 部分代码

% 基于DCT变换的信息隐藏(数字水印)嵌入算法的设计 % close all;clc;clear allwarning off%-----------------读入"隐藏的图片"---------------------I=imread('W.bmp');%-----------------------读入"载体图像"-------------------------cover_image=imread('lena.bmp');%------------------------------------------------------------------I0=rgb2gray(I);%灰度化cover_image=rgb2gray(cover_image);%灰度化[wm0,watermarked_image,wm]=ldpc_dct(I0,cover_image);%ldpc_dct嵌入提取e=wm0-wm;[m,n]=size(e);mse=sum((e(:).^2))/(m*n);psnr=10*log10(255^2/mse);%原始水印与提取水印的峰值信噪比% disp(['ldpc改进dct提取水印的峰值信噪比psnr=',num2str(psnr)])figure(1)subplot(221)imshow(cover_image);title('原图');subplot(222);imshow(I0);title('水印图');title('水印图');%显示嵌入水印后的图象subplot(223);uint8_watermarked_image=uint8(watermarked_image);imshow(uint8_watermarked_image)title('ldpc编码译码改进后嵌入水印图') subplot(224);imshow(double(wm));title('ldpc编码译码改进后提取水印图')%% 剪切攻击[thr,sorh,keepapp]= ddencmp('cmp','wv',I_gaosi);% 降噪 or 压缩 using wavelets.[I_yasuo,CXC,LXC,PERF0,PERFL2] = ... wdencmp('gbl',C,S,'bior3.7',2,thr,sorh,keepapp);[wm_yasuo0,watermarked_image_yasuo,wm_yasuo]=ldpc_dct(I_yasuo,cover_image);%ldpc_dct嵌入提取e_yasuo=wm_yasuo0-wm_yasuo;[m,n]=size(e_yasuo);mse_yasuo=sum((e_yasuo(:).^2))/(m*n);psnr_yasuo=10*log10(255^2/mse_yasuo);%原始水印与提取水印的峰值信噪比% disp(['旋转攻击后峰值信噪比psnr=',num2str(psnr_xuanzhuan)])figure(5)subplot(221)imshow(cover_image);title('原图');subplot(222);imshow(I0);title('水印图');%显示嵌入水印后的图象subplot(223);uint8_watermarked_image_yasuo=uint8(watermarked_image_yasuo);imshow(uint8_watermarked_image_yasuo)title('小波压缩后嵌入水印图') subplot(224);imshow(double(wm_yasuo));title('小波压缩后提取水印图')

3 仿真结果

4 参考文献

[1]朱冰莲, 王雅楠. 基于LDPC码的图像水印盲检算法[J]. 重庆理工大学学报:自然科学, 2010(7):5.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python提供的一些相当实用而灵活的通用数据结构(python 常用数据结构)
下一篇:springboot增加注解缓存@Cacheable的实现
相关文章

 发表评论

暂时没有评论,来抢沙发吧~