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

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

✅作者简介:热爱科研的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电子书和数学建模资料
相关文章
|
25天前
|
存储 人工智能 机器人
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
|
1月前
|
存储
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
|
4月前
|
Perl
【MFAC】基于全格式动态线性化的无模型自适应控制(Matlab代码)
【MFAC】基于全格式动态线性化的无模型自适应控制(Matlab代码)
|
4月前
【数值分析】迭代法求方程的根(附matlab代码)
【数值分析】迭代法求方程的根(附matlab代码)
|
4月前
【数值分析】Jacobi、Seidel和Sor迭代法求解线性方程组(附matlab代码)
【数值分析】Jacobi、Seidel和Sor迭代法求解线性方程组(附matlab代码)
|
4月前
【数值分析】二分法求方程的根(附matlab代码)
【数值分析】二分法求方程的根(附matlab代码)
|
3月前
|
机器学习/深度学习 算法 计算机视觉
霍夫变换车道线识别-车牌字符识别代码(matlab仿真与图像处理系列第5期)
霍夫变换车道线识别-车牌字符识别代码(matlab仿真与图像处理系列第5期)
30 2
|
3月前
|
算法
MATLAB | 插值算法 | 一维interpl插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 一维interpl插值法 | 附数据和出图代码 | 直接上手
45 0
|
3月前
|
算法
MATLAB | 插值算法 | 二维interp2插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 二维interp2插值法 | 附数据和出图代码 | 直接上手
92 0
|
3月前
|
算法
MATLAB | 插值算法 | 二维griddata插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 二维griddata插值法 | 附数据和出图代码 | 直接上手
44 0