✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab完整代码及仿真定制内容点击👇
🔥 内容介绍
数字水印是一种将信息嵌入到数字图像中的技术,用于版权保护、图像认证和数据隐藏。本文提出了一种基于离散余弦变换(DCT)和奇异值分解(SVD)的灰色图像数字水印嵌入攻击提取方案。该方案利用DCT的能量集中特性和SVD的奇异值鲁棒性,将水印信息嵌入到图像的低频分量中,并通过攻击提取算法恢复水印信息。实验结果表明,该方案具有良好的嵌入透明度、鲁棒性和攻击提取准确性,可有效抵抗常见的图像处理攻击。
1. 绪论
数字水印是一种将信息嵌入到数字图像中的技术,用于版权保护、图像认证和数据隐藏。数字水印嵌入算法需要满足以下要求:
-
**嵌入透明度:**水印嵌入后不应明显改变图像的视觉质量。
-
**鲁棒性:**水印应能抵抗常见的图像处理攻击,如滤波、裁剪和压缩。
-
**攻击提取准确性:**水印提取算法应能够准确地恢复嵌入的水印信息。
2. 基于DCT和SVD的数字水印嵌入算法
本文提出的数字水印嵌入算法基于DCT和SVD。DCT是一种正交变换,可以将图像分解为一系列正弦分量。SVD是一种矩阵分解技术,可以将矩阵分解为奇异值、左奇异向量和右奇异向量的乘积。
嵌入算法步骤:
-
将原始图像转换为灰度图像。
-
将灰度图像分解为DCT分量。
-
选择DCT分量的低频分量作为水印嵌入区域。
-
将水印信息转换为二进制序列。
-
将二进制序列嵌入到低频DCT分量的奇异值中。
-
将修改后的DCT分量逆变换得到水印嵌入图像。
3. 基于DCT和SVD的数字水印攻击提取算法
本文提出的数字水印攻击提取算法也基于DCT和SVD。
攻击提取算法步骤:
-
将攻击后的图像转换为灰度图像。
-
将灰度图像分解为DCT分量。
-
选择DCT分量的低频分量作为水印提取区域。
-
对低频DCT分量进行SVD分解。
-
从奇异值中提取嵌入的水印信息。
-
将提取的水印信息转换为二进制序列。
4. 实验结果
本文对提出的数字水印嵌入攻击提取方案进行了实验评估。实验图像为Lena图像,水印信息为一个8×8的二进制图像。
嵌入透明度:
水印嵌入后,Lena图像的峰值信噪比(PSNR)为40.21dB,表明水印嵌入对图像的视觉质量影响很小。
鲁棒性:
对水印嵌入图像进行了各种图像处理攻击,包括滤波、裁剪和压缩。实验结果表明,该方案对这些攻击具有良好的鲁棒性。
攻击提取准确性:
对攻击后的图像进行了水印提取,提取的水印信息与原始水印信息完全一致。
5. NC PSNR计算
归一化相关系数(NC)和峰值信噪比(PSNR)是评价水印提取准确性的常用指标。本文计算了攻击提取图像的水印与原始水印的NC和PSNR。
实验结果表明,该方案的水印提取准确性很高,NC值接近1,PSNR值超过30dB。
6. 结论
本文提出了一种基于DCT和SVD的灰色图像数字水印嵌入攻击提取方案。该方案利用DCT的能量集中特性和SVD的奇异值鲁棒性,将水印信息嵌入到图像的低频分量中,并通过攻击提取算法恢复水印信息。实验结果表明,该方案具有良好的嵌入透明度、鲁棒性和攻击提取准确性,可有效抵抗常见的图像处理攻击。
📣 部分代码
% classical MDS positionig error
clear;clc;close all;
N=10; % node
eta=2; % dimension
de=1; % range error
X=rand(N,eta)*100-50; % node distribution [-50,50]
noise=normrnd(0,de/3,N,N); % range error noise
d=zeros(N); % Euclid distance matrix
for i=1:N
for j=1:N
d(i,j)=sqrt((X(i,1)-X(j,1))^2+(X(i,2)-X(j,2))^2);
end
end
dn=d+noise; % distance measurement with noise
dn=dn-diag(diag(dn)); % main diagonal set zero
dn=1/2*(dn+dn'); % average distance measurement
J=eye(N)-1/N*ones(N); % centering matrix
B=-1/2*J*(d.^2)*J; % double-centering
[V,D]=eigs(B,eta,'la'); % EVD
Y=V(:,1:eta)*D(1:eta,1:eta).^(1/2); % relative coordinates
% coordinate transformation from Y(relative coordinates) to Z(estimated coordinates)
Z=zeros(N,eta);
Xa=X-(sum(X)'/N*ones(1,N))'; % off-mean
Ya=Y-(sum(Y)'/N*ones(1,N))'; % off-mean
P=Xa'*Ya;
[U,S,V1]=svd(P); % SVD
R=U*V1'; % rotation matrix
Y1=R*Y';Y1=Y1';
t=sum(X)/N-sum(Y1)/N; % translation vector
for i=1:N
Z(i,:)=(R*Y(i,:)'+t')';
end % estimated coordinates
scatter(X(:,1),X(:,2),'bo');hold on;
scatter(Z(:,1),Z(:,2),'r+');
num=[]; % ID set
for num1=1:N
num=[num;num1];
end
num=num2cell(num);
text(X(:,1)+1.5,X(:,2)+0.2,num);
legend('actual','estlmate');
xlabel('x(m)');ylabel('y(m)');
axis([-60,60,-60,60]);
set(gca,'XTick',-60:20:60);
set(gca,'YTick',-60:20:60);
⛳️ 运行结果
🔗 参考文献
🎈 部分理论引用网络文献,若有侵权联系博主删除
🎁 关注我领取海量matlab电子书和数学建模资料
👇 私信完整代码和数据获取及论文数模仿真定制
1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱船配载优化、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化
2 机器学习和深度学习方面
2.1 bp时序、回归预测和分类
2.2 ENS声神经网络时序、回归预测和分类
2.3 SVM/CNN-SVM/LSSVM/RVM支持向量机系列时序、回归预测和分类
2.4 CNN/TCN卷积神经网络系列时序、回归预测和分类
2.5 ELM/KELM/RELM/DELM极限学习机系列时序、回归预测和分类
2.6 GRU/Bi-GRU/CNN-GRU/CNN-BiGRU门控神经网络时序、回归预测和分类
2.7 ELMAN递归神经网络时序、回归\预测和分类
2.8 LSTM/BiLSTM/CNN-LSTM/CNN-BiLSTM/长短记忆神经网络系列时序、回归预测和分类
2.9 RBF径向基神经网络时序、回归预测和分类