一、简介
基于matlab小波变换的数字水印技术,数字水印(Digital Watermarking)技术即将一些标识信息(即水印)直接嵌入数字载体当中(包括多媒体、文档、软件等)或者间接表示(修改特定区域的结构),且不影响原载体的使用价值,也不容易被探知和再次修改,但可以被生产方识别和辨认。通过这些隐藏在载体中的信息,可以达到确认内容创建者、购买者、传送隐秘信息或者判断载体是否被篡改等目的。数字水印是实现版权保护的有效办法,是信息隐藏技术研究领域的重要分支。
二、部分源码
close all
%读取载体图像
I = imread('office_4.jpg');
%转换为灰度图
I = rgb2gray(I);
%读取水印图像
W = imread('logo.tif');
%裁剪为长宽相等
W=W(12:91,17:96);
figure('Name','载体图像')
imshow(I);
title('载体图像')
figure('Name','水印图像')
imshow(W);
title('水印图像')
ntimes=23;
rngseed=59433;
flag=1;
[Iw,psnr]=setdwtwatermark(I,W,ntimes,rngseed,0);
[Wg,nc]=getdwtwatermark(Iw,W,ntimes,rngseed,0);
%close all
%5种攻击图像
action={'filter','resize','crop','noise','rotate'};
for i=1:numel(action)
dwtwatermarkattack(action{i},Iw,W,ntimes,rngseed);
end
三、运行结果
四、matlab版本
MATLAB R2019a
五、学习与交流
文中不足之处请大家多多指教,学习与交流可以联系企鹅:3752243968
文中部分源码仅供参考,若需要全部代码可以私信