【图像隐写】离散余弦变换DCT结合奇异值分解SVD灰色图像信息隐写(数字水印嵌入攻击提取 含NC PSNR)【含Matlab源码 3892期】

在这里插入图片描述
✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、数字水印嵌入提取

摘要:重点介绍数字水印的嵌入与提取算法。数字水印根据水印的嵌入技术不同分为空间域数字水印和变换域数字水印。将分别介绍数字水印的空间域算法和变换域算法,并结合图像质量评价参数峰值信噪比(PSNR)分析这两种算法的优缺点。

1 引言
随着互联网的普及和数字技术的广泛应用,数字产品变得极大丰富并且传播便捷,同时版权保护问题也日益突出。传统的信息安全技术在数字产品版权保护方面存在的不足,促成了数字水印技术的发展。数字水印技术将数字水印隐藏于数字媒体中,以便在版权纠纷中为版权所有者提供版权证明。数字水印根据水印的嵌入技术不同分为空间域数字水印和变换域数字水印。空间域算法包含叠加法和最低有效位(LSB)图像水印法等,变换域算法包含小波变换法等。实验部分使用Matlab软件进行,并分别用这三种方法对图像数字水印进行嵌入与提取。最后在相同的水印信号条件下,结合这三种方法所产生的含水印图像的峰值信噪比,分析了这三种方法的优缺点。

2 数字图像水印算法
数字水印技术是一种基于内容的、非密码机制的计算机信息隐藏技术。它可以将一些标识信息直接嵌入数字载体当中,且不影响原载体的使用价值,也不容易被探知和再次修改,从而实现保护版权、信息隐藏的功能。数字水印按照特性可以分为鲁棒数字水印和脆弱数字水印。本部分重点研究脆弱数字水印的应用,同时分别分析三种水印算法的机理和效果。

2.1 数字图像水印算法的基本框架
如图一所示的是水印嵌入与提取流程图,根据密钥和水印产生算法生成水印信号,通过水印嵌入算法,将水印信号和原始图像进行结合, 得到嵌入了水印的作品。然后,在水印信号提取过程中,可以在相同的密钥下,通过水印产生算法恢复出水印信号。需要注意的是,特定的密钥对水印的嵌入和提取至关重要。
在这里插入图片描述
2.2 叠加法
叠加法通过对原始图像灰度值进行处理,将其按照某个权重叠加上水印图像灰度值即可得到加入水印的图像。同理,若想恢复出水印图像,可以直接将加入水印的图像减去原始图像。
在Matlab中对图像灰度值进行处理要先将图像变换成double类型,然后再进行简单叠加操作。代码如下所示:

imNew=uint8(double(imOri)+0.01*double(imWat)) ;%水印图像灰度权重设为0.01

2.3 最低有效位(LSB)图像水印法
最低有效位算法是一种典型的空间域信息隐藏算法。对于一张8位灰度图像,它的灰度数值可以表示为0到255,那么可以将其分割为从低到高的8位比特平面。因为高位比特平面所占的灰度权重较高,由此可以直接将水印信号的高位比特平面替换原始图像的低位比特平面,从而达到水印嵌入的效果。对于水印提取的过程可以根据加入水印图像的低位比特平面直接进行恢复提取。
将lena图像的第六位到第八位比特平面特换掉cameraman图像比特平面的第一位到第三位,同时保留cameraman图像原本的高位比特平面。
由于低位比特平面所占像素权重不高,所以加入水印的图像不仅效果较好,而且可以很好地隐藏信息。通过代码可以实现低位比特平面恢复水印图像,代码如下,结果如图三所示。

newimgW=newimgW+bitPlaneRec(:,:,i)*2^(4+i); %低位比特平面转移到高位比特平面

在这里插入图片描述
2.4 小波变换法
小波变换是空间时间和频率的局部变换,能有效地从信号中提取信息,通过伸缩和平移等运算功能可对函数或信号进行多尺度的细化分析,达到高频处时间细分和低频处频率细分。一般来说,在数字图像处理中使用的是离散小波变换对图像进行处理,图像被变换成低频域(代表图像的概貌)和高频域(代表图像的细节)两部分,并且高频部分可以分为代表图像水平方向分量的HL,代表图像垂直方向分量LH,以及代表图像对角线方向分量的HH三部分区域。低频系数代表它所在的小波块对应的图像块的平均亮度,高频系数代表图像的纹理和边缘部分。如果对低频区域再进一步进行小波变换,则低频域将按照上述原则递归生成更高一级的低频和高频区域。如图四为图像进行三级分解的结构示意图。
在这里插入图片描述
图五:三级小波分解结构图与示例图
图像经过小波变换后生成的小波图像的数据总量与原图像的数据总量相等, 通过将原始图像和水印信号的小波变换低频系数相加,最终可以得到新的小波域系数,再经过一次小波反变换最终可以获得嵌入水印的图像。水印恢复可以表示为水印信号减去原始信号。图五为小波变换法效果图。
核心代码如下所示:

imNew =uint8(ihaart2(LLwatermarked,LHorig,HLorig,HHorig)); %添加水印图像
imagesc(double(imNew)-double(imOri))%恢复水印

在这里插入图片描述
图六:小波变换法效果图

2.5 DCT变换
2.5.1 DCT变换的特点
在基于DCT的变换编码中,图像是先经分块(8×8或16×16)后再经DCT,这种变换是局部的,只反映了图像某一部分的信息。当然也可以对整幅图像的特点,但是运算速度比分块DCT要慢。图像经DCT后,得到的DCT图像有三个特点:
(1) 系数值全部集中到0值附近(从直方图统计的意义上),动态范围很小,这说明用较小的量化比特数即可表示DCT系数;
(2) DCT变换后图像能量集中在图像的低频部分,即DCT图像中不为零的系数大部分集中在一起(左上角),因此编码效率很高。
(3).没有保留原图像块的精细结构,从中反映不了原图像块的边缘、轮廓等信息,这一特点是由DCT缺乏时局域性造成的。

2.5.2 宿主图像的DCT变换
对于N×N大小的256灰度级的宿主图像I进行N×N二维离散余弦变换(DCT)。以ZigZag方式对于DCT变换后的图像频率系数重新排列成一维向量Y={y1, y2,…yN×N}. 并取出序列中第L+1到L+M的中频系数部分,得到YL={ YL+1, YL+2,…, YL+M}。

2.5.3 DCT数字水印嵌入算法流程
在这里插入图片描述
2.5.4 DCT数字水印提取算法流程
在这里插入图片描述

3 水印图像质量评价与分析
图像质量评价通常从两个方面进行,分别是主观评价和客观评价,客观评价通常借由一些特定的指标进行,如PSNR(峰值信噪比)和SSIM(结构相似性)。本部分结合图像质量评价参数峰值信噪比(PSNR)分析前一部分介绍的三种图像水印算法的优缺点。

3.1 峰值信噪比(PSNR)
PSNR定义公式为:
在这里插入图片描述
其中MSE为两幅图像像素点之间的均方误差,MAX表示为灰度最大值,对于一幅8位灰度图像,MAX为255。对于一般的水印图像,更高的PSNR值意味着图像有更好的性能。

⛄二、部分源代码

clear all;
clc;
close all;
start_time=cputime;

%%%%%%%%%%%% DCT-SVD Waterwatermarking %%%%%%%%

I=imread(‘lena.bmp’);[M,k]=size(I);
I=im2double(I);
save I
figure,imshow(I),title(‘原始图像’);
aq=dct2(I);
BW = edge(I,‘canny’);
figure(3)
imshow(BW),title(‘边缘检测’);
BW1 = blkproc(I,[16 16],‘dct2’); %%%%%%Dividing into 16x16 Blocks
figure,imshow(BW1);title(‘DCT变换后的图像’);
BW2=graythresh(BW1); %%%%%%%Threshold T1
B=dct2(BW2); %%%%%%%DCT to T1

%%%%%%%%%%%Applying SVD to selected Blocks%%%%%%%%%%%%%%%%%%%%%%%

%[N,k]=size(w);
[M,N]=size(I);
[Uimg,Simg,Vimg]=svd(BW1);
Simg_temp=Simg;
w=logical([1 0 0 0 1 0 0 0 1 0 0 0;0 1 1 0 1 1 0 1 1 1 0 1;0 1 1 1 1 1 0 1 1 1 0 1;1 0 0 1 1 1 0 0 1 0 0 1;1 1 1 0 1 1 1 0 1 0 1 1;0 1 1 0 1 1 1 0 1 0 1 1; 0 0 0 1 1 1 1 1 0 1 1 1]);
w=imresize(w,[64 64]);

[N,k]=size(w);
figure,
imshow(w),title(‘水印’)
save w
[N,k]=size(w);
K=M/N;
alpha=0.2;

%%%%%%%%%%%%%%%%%%%%% Embedding Process %%%%%%%%%%

for p=1:N
for q=1:N
x=(p-1)*K+1;y=(q-1)*K+1;
BLOCK=I(x:x+K-1, y:y+K-1);
trans=dct2(BLOCK);
sig(p,q)=trans(1,1);

end

end
[uh,sh,vh]=svd(sig);
se=sh+alphaw;
[u1,s1,v1]=svd(se);
sig=uh
s1*vh’;

for p=1:N
for q=1:N
x=(p-1)*K+1;y=(q-1)*K+1;
BLOCK=I(x:x+K-1, y:y+K-1);
trans=dct2(BLOCK);
trans(1,1)=sig(p,q);
BLOCK=idct2(trans);
I(x:x+K-1, y:y+K-1)=BLOCK;
end
end
img_wat=im2uint8(I);
imwrite(img_wat,‘watermarked.bmp’);
imshow(img_wat),title(‘嵌入水印后的图像’);
save img_wat

%%%%%%%%%%%%%%%%%%%%%%Calculations%%%%%%%%%%%%%%%%%%%%%%%%%%%%

I=imread(‘lena.bmp’);
I=double(I);
img_wat=double(img_wat);
maxmum=max(max(I));
x=(I-img_wat).^2;
y=sum(reshape(x,MM,1));
psnr=10
log10(MMmaxmum^2/y);
disp(‘PSNR VALUE FOR WATERMARKED WITH OUT ATTACKS…’);
disp(psnr);
save(‘dct’,‘u1’,‘v1’,‘sh’);
c=corr2(I,img_wat);
disp(‘correlation coefficient is–’)
disp©
embed_time=cputime-start_time;
disp(‘Total Embedding Time…’),disp(embed_time);

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]宋俊辉,鲁骏.彩色图像数字水印嵌入和提取模型研究——基于DWT和DCT[J].现代商贸工业. 2011,23(17)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Matlab领域

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

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

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

打赏作者

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

抵扣说明:

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

余额充值