【数字水印】基于小波变换算法DWT实现水印嵌入提取(含滤波攻击)含Matlab代码

本文探讨了利用小波分析方法进行数字图像水印的嵌入和提取,提出了一种基于DWT的图像水印算法。实验显示该算法在面对滤波等攻击时表现出良好的鲁棒性。同时,文中还展示了水印音频的时域和频域波形,并提供了Matlab实现代码示例。
摘要由CSDN通过智能技术生成

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信       无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机 

⛄ 内容介绍

计算机和通信技术的迅速发展使得数字媒体的传播越来越便捷,但版权侵害也随之增多,为了保护数字产品的知识产权,人们对数字水印技术进行了广泛而深入的研究。小波变换理论是近些年来新兴的数学分支,由于小波变换具有良好的局部特性,因此基于小波变换的数字图像水印技术成为人们研究的热点。本文主要对应用小波分析方法进行数字图像水印的嵌入和提取问题作了研究,提出了基于DWT的数字图像水印算法.实验表明,该算法对于滤波等攻击都具有较好的鲁棒性。

⛄ 部分代码

s=max(abs(x))*0.2;

i=find(abs(x)>s);

lx=length(x(i));

%读取水印音频

FILE2='test_new.wav';

[mark,Fs]=audioread(FILE2);

mark=mark(1:lx);

mark_fft=fft(mark,Fs);

% mark_fft_f=2*sqrt(mark_fft.*conj(mark_fft));

axes(handles.axes1);

plot(mark);

grid on;axis tight;

title('水印音频信号的时域波形');

xlabel('time(s)');ylabel('幅度');

axes(handles.axes2)

plot(abs(mark_fft));

grid on;axis tight;

title('水印音频信号的频域波形');

xlabel('f(Hz)');ylabel('幅度');

sound(mark,Fs);

% --- Executes on button press in pushbutton3.

function pushbutton3_Callback(hObject, eventdata, handles)

% hObject    handle to pushbutton3 (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

%--------------------------水印嵌入-------------------------%

cla reset;

Fs=44100;

FILE1='Rihanna - Take A Bow.wav';

[y,Fs]=audioread(FILE1);%音频信号y,采样率fs,采样精度bits

%用db4小波对原始音频信号进行3级小波分解

[c,l]=wavedec(y,3,'db4');%3级小波分解,低频部分为相似,高频部分为细节

%提取3级小波分解的低频系数和高频系数

ca3=appcoef(c,l,'db4',3);%提取三级小波分解的最低频分

cd3=detcoef(c,l,3);%提取三级小波分解的次低频分

cd2=detcoef(c,l,2);

cd1=detcoef(c,l,1);

x=ca3;%提取三级小波分解的最低频部分

%找到插入位置,检测特征点

s=max(abs(x))*0.2;

i=find(abs(x)>s);

lx=length(x(i));

%读取水印音频

FILE2='test_new.wav';

[mark,Fs]=audioread(FILE2);

mark=mark(1:lx);

%水印信号嵌入

ss=mark(1:lx);

rr=ss*0.02;

x(i)=x(i).*(1+rr');

%小波重构,生成加入了水印信号的音频信号

c1=[x',cd3',cd2',cd1'];

s1=waverec(c1,l,'db4');

%把加入了水印的原始音频信号作为final1.wav保存

FILE3='final1.wav';

audiowrite(FILE3,s1,Fs,'BitsPerSample',16,...

'Comment','This is my new audio file.');;

[y1,Fs]=audioread(FILE3);

y1_fft=fft(y1,Fs);

% y1_fft_f=2*sqrt(y1_fft.*conj(y1_fft));

axes(handles.axes1);

⛄ 运行结果

⛄ 参考文献

[1] 赵红. 基于Matlab的数字音频水印量化算法[J]. 福建电脑, 2007(11):2.

[2] 伊晓玲. 基于小波变换的数字水印算法研究与实现[D]. 西安科技大学, 2008.

[3] 王艳玲. 基于DWT的数字水印算法的MatLab实现[J]. 信息技术与信息化, 2006(1):2.

[4] 李栩, 刘达通, 陈军萍. 基于小波变换的数字水印嵌入和提取[J].  2009.

⛳️ 代码获取关注我

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

❤️ 关注我领取海量matlab电子书和数学建模资料

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值