鲁棒数字水印算法的研究和比较 - 图文(7)

2019-08-30 15:36

参 考 文 献

[1] 王颖,肖俊,王蕴红.数字水印原理与技术[M].北京:科学出版社,2007.62-64.

[2] 李道远,常敏,袁春风.基于小波变换的数字水印综述[J].计算机工程与应用,2003,(3): 65-67. [3] 谢海宁,王先培,楼越焕等.数字水印在谱图共享系统中的一种应用[J].武汉大学学报(工学版), 2004,37(6):62-67.

[4] 张旭东,卢国栋,冯健.图像编码基础和小波压缩技术---原理,算法和标准[M].北京:清华大学出版社,2004.165-186.

[5] 张春田,苏育挺,张静.数字图像压缩编码[M].北京:清华大学出社,2006.218-241. [6] 彭玉华.小波变换与工程应用[M].北京:科学出版社,2000.

[7] 宋玉杰,谭铁牛.基于小波域数字水印的图像完整性验证研究[J].中国图像图形学报,2003,8(1): 1-7.

[8] 张辉曹,丽娜.现代通信原理与技术[M].西安:西安电子科技大学出版社,2002.

[9] 邓小颖,胡学龙,高燕. 一种二值文本图像的数字水印算法[J].扬州大学学报(自然科学版),2005,(8):42—45.

[10] 鲁江,王旭强,蔺鹏等.基于小波变换的数字水印算法[J].计算机工程与设计,2006,42(4):1685-1688.

[11] RUANAIDH J K O,PUN. TRotationscale and translation invariant spread spectrum digital image watermark [J].Signal Processing,2002,86(4):303-315.

[12] I J Cox,J Kilian,T Leighton,T Shamoon.Secure Spread Spectrum Watermarking for Multimedia[J].IEEE Transactions on Image Processing,1997,6(12):1673-1687.

[13] 黄达人,刘九芬,黄继武.小波变换域图像水印嵌入对策和算法[J].软件学报,2002,3(7): 1290—1324.

[14] 韦志辉,秦鹏,欧阳宏彬.基于小波域中视觉门限模型的数字水印技术[N].东南大学学报, 1998-2-8(5).

27

附 录

%% ---------------------------------------------------------------------%% % 基于小波变换的扩频图象数字水印-->水印嵌入

%% ---------------------------------------------------------------------%% start_time=cputime; k=1; % 扩频因子

% 读取载体图像 file_name='ship.bmp'; iCover = imread(file_name); dCover = double(iCover); dOrigCover = dCover; Mc=size(iCover,1); Nc=size(iCover,2);

% 读取水印图像 file_name='copyright.bmp'; iWatermark = imread(file_name); dWatermark = double(iWatermark); Mm=size(iWatermark,1); Nm=size(iWatermark,2);

% 将水印图像转变为一维数组

dWatermarkVector=round(reshape(dWatermark,Mm*Nm,1)./256);

% 读取秘钥 file_name='key.bmp';

key=double(imread(file_name))./256;

rand('state',key); % 根据密钥生成随机数种子

28

% 高度 % 宽度

h = waitbar(0,'Embedding, please wait...'); % haar小波变换

[cA1,cH1,cV1,cD1] = dwt2(dCover,'haar');

% 扩频叠加水印

iLength = length(dWatermarkVector); for (kk=1:iLength)

pn_sequence_h=round(2*(rand(Mc/2,Nc/2)-0.5)); pn_sequence_v=round(2*(rand(Mc/2,Nc/2)-0.5));

if (dWatermarkVector(kk) == 0) cH1=cH1+k*pn_sequence_h; cV1=cV1+k*pn_sequence_v; end

waitbar(kk/iLength,h); end close(h);

% 逆小波变换

dEmbed = idwt2(cA1,cH1,cV1,cD1,'haar',[Mc,Nc]);

% 保存嵌入了水印的图像 uEmbed = uint8(dEmbed); imwrite(uEmbed,'~dwt.bmp','bmp');

PSNR = psnr(dOrigCover,dEmbed); % 计算最大信噪比elapsed_time=cputime-start_time

% 对比显示

figure(1),imshow(iCover,[]);

29

title('Original Image'); figure(2),imshow(uEmbed,[]);

title(strcat('Watermarked Image',',PSNR=',num2str(PSNR))); %% END------------------------------------------------------------------%%

%% ---------------------------------------------------------------------%% % 基于小波变换的扩频图象数字水印-->水印检测

%% ---------------------------------------------------------------------%% start_time=cputime; k=1; % 扩频因子

% 读取嵌入了水印的载体图像 file_name='~dwt.bmp'; iEmbed = imread(file_name); dEmbed = double(iEmbed); Mc=size(iEmbed,1); % 高度 Nc=size(iEmbed,2); % 宽度

% 读取水印图像 file_name='copyright.bmp'; iWatermark = imread(file_name); dWatermark = double(iWatermark); ddWatermark=dWatermark;

Mw=size(iWatermark,1); Nw=size(iWatermark,2);

% 读取秘钥 file_name='key.bmp';

key=double(imread(file_name))./256;

30

rand('state',key); % 根据密钥生成随机数种子 MessageVector=ones(1,Mw*Nw);

h = waitbar(0,'Detecting, please wait...'); % haar小波变换

[cA1,cH1,cV1,cD1] = dwt2(dEmbed,'haar');

% 扩频检测水印

iLength = length(MessageVector); for (kk=1:iLength)

pn_sequence_h=round(2*(rand(Mc/2,Nc/2)-0.5)); pn_sequence_v=round(2*(rand(Mc/2,Nc/2)-0.5));

correlation_h(kk)=corr2(cH1,pn_sequence_h); correlation_v(kk)=corr2(cV1,pn_sequence_v);

correlation(kk)=(correlation_h(kk)+correlation_v(kk))/2; waitbar(kk/iLength,h); end

for (kk=1:iLength)

if (correlation(kk) > mean(correlation)) MessageVector(kk)=0; end end close(h);

% 生成水印文件

DDetect=reshape(255*MessageVector,Mw,Nw); Detect=uint8(DDetect);

imwrite(Detect,'~watermark.bmp','bmp');

31


鲁棒数字水印算法的研究和比较 - 图文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:实训基地临近营业专项方案终 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: