1 简介 根据数字水印系统与通信系统的相似性,借助通信中的LDPC码和交织技术可提高盲水印算法的鲁棒性.在DCT域设计并实现了一种盲数字水印算法.该算法采用LDPC码作为水印信道编码,对
1 简介
根据数字水印系统与通信系统的相似性,借助通信中的LDPC码和交织技术可提高盲水印算法的鲁棒性.在DCT域设计并实现了一种盲数字水印算法.该算法采用LDPC码作为水印信道编码,对图像水印传输进行差错控制,把通过LDPC码编码后的水印序列嵌入原始图像频域,在提取时采用LDPC码的迭代译码算法.实验结果表明:该算法对于常见的图像攻击具有很强的鲁棒性,并且具有很好的视觉不可见性.
2 部分代码
% 基于DCT变换的信息隐藏(数字水印)嵌入算法的设计 %close all;
clc;
clear all
warning 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.