首页 > 编程语言 >基于DCT变换的彩色图像双重水印嵌入和提取算法matlab仿真

基于DCT变换的彩色图像双重水印嵌入和提取算法matlab仿真

时间:2024-04-30 21:34:07浏览次数:27  
标签:彩色图像 RR CC wk 水印 matlab mwk DCT Blksize

1.算法运行效果图预览

灰度图

 

 

 

彩色图

 

 

 

2.算法运行软件版本

matlab2022a

 

 

3.算法理论概述

       双重水印嵌入算法涉及两个独立的水印:主水印和辅水印,它们可以是灰度图像、二进制序列或其他形式的数据。以下简述嵌入过程:

 

图像预处理:将彩色图像从RGB空间转换至YCbCr或YIQ等色彩空间,仅对亮度分量(如Y分量)进行水印嵌入,以减少对颜色信息的影响。

 

图像分割:将亮度分量图像分割成若干个非重叠的M×N大小的子块。

 

DCT变换:对每个子块进行二维DCT变换,得到DCT系数矩阵。

 

具体的算法流程图如下所示:

 

第一重水印:

 

 

 

第二重水印:

 

 

 

 

 

4.部分核心程序

%%
%基于论文的双重水印算法嵌入
%第1重
%设置嵌入强度
Power      = 20;  
%设置块的大小
Blksize    = 8;   
%改变水印大小,如果太大,则没法全部插入
RR         = 32;
CC         = 32;
 
%第1重 
mwk_image1r = func_wk_insert_first(I0r,Marks1r,Power,Blksize,RR,CC);
mwk_image1g = func_wk_insert_first(I0g,Marks1g,Power,Blksize,RR,CC);
mwk_image1b = func_wk_insert_first(I0b,Marks1b,Power,Blksize,RR,CC);
 
%第2重
mwk_image2r = func_wk_insert_second(mwk_image1r,Marks2r,Power,Blksize,RR,CC);
mwk_image2g = func_wk_insert_second(mwk_image1g,Marks2g,Power,Blksize,RR,CC);
mwk_image2b = func_wk_insert_second(mwk_image1b,Marks2b,Power,Blksize,RR,CC);
 
 
%%---------------------------------------------------------------------------------------
%增加攻击
noise0       = 1*randn(size(mwk_image1r));
mwk_image2r  = double(mwk_image2r) + noise0;
mwk_image2g  = double(mwk_image2g) + noise0;
mwk_image2b  = double(mwk_image2b) + noise0;
mwk_image(:,:,1)  = mwk_image2r;
mwk_image(:,:,2)  = mwk_image2g;
mwk_image(:,:,3)  = mwk_image2b; 
 
Msg1r        = func_wk_desert_first(mwk_image2r,Blksize,RR,CC,0.8);
Msg1g        = func_wk_desert_first(mwk_image2g,Blksize,RR,CC,0.8);
Msg1b        = func_wk_desert_first(mwk_image2b,Blksize,RR,CC,0.8);
Msg1(:,:,1)  = Msg1r;
Msg1(:,:,2)  = Msg1g;
Msg1(:,:,3)  = Msg1b;
 
 
Msg2r        = func_wk_desert_second(mwk_image2r,Blksize,RR,CC,2.2);
Msg2g        = func_wk_desert_second(mwk_image2g,Blksize,RR,CC,2.2);
Msg2b        = func_wk_desert_second(mwk_image2b,Blksize,RR,CC,2.2);
Msg2(:,:,1)  = Msg2r;
Msg2(:,:,2)  = Msg2g;
Msg2(:,:,3)  = Msg2b;
 
 
figure(1)
subplot(231);
imshow(I0,[]);
title('原始图像');
subplot(232);
imshow(I1,[]);
title('第一重水印');
subplot(233);
imshow(I2,[]);
title('第二重水印');
 
subplot(234);
imshow(uint8(mwk_image));
title('加入旋转攻击和噪声攻击的图像');
subplot(235);
imshow(uint8(Msg1));
title('第一重水印提取');
subplot(236);
imshow(uint8(Msg2));
title('第二重水印提取');

  

标签:彩色图像,RR,CC,wk,水印,matlab,mwk,DCT,Blksize
From: https://www.cnblogs.com/matlabworld/p/18168721

相关文章

  • MATLAB 和 Octave 之间的区别
    MATLAB和Octave之间的区别MATLAB和Octave有一些区别,但大多数都是相同的。你可以说Octave是MATLAB的免费版本,语法几乎与MATLAB相同。但是MATLAB比Octave具有更多功能,就像具有Simulink一样,后者用于开发和分析控制系统和电源系统。MATLAB运行起来比Octave更......
  • MATLAB运行simulink模型显示找不到库Failed to load library
    MATLAB运行simulink模型显示找不到库Failedtoloadlibrary‘原因上述的错误即提示加载某一个库失败了,原因就是MATLAB需要在其设定的setpath中寻找。设置paths查看paths添加成功后再次打开MATLAB的setpath,可以看到相关文件及库被添加进来了。点击save进行保存,重新运......
  • 基于直方图的图像阈值计算和分割算法FPGA实现,包含tb测试文件和MATLAB辅助验证
    1.算法运行效果图预览   2.算法运行软件版本VIVADO2019.2 matlab2022a 3.算法理论概述      图像阈值计算和分割是图像处理领域的一项重要任务,它通过设定一个阈值将图像从灰度空间转化为二值空间,从而实现对图像区域的有效划分。基于直方图的阈值选取方......
  • m基于Yolov2深度学习网络的智能零售柜商品识别系统matlab仿真,带GUI界面
    1.算法仿真效果matlab2022a仿真结果如下:  2.算法涉及理论知识概要       YOLO(YouOnlyLookOnce)是一种实时的目标检测算法,YOLOv2则是其改进版本,由JosephRedmon和AliFarhadi于2016年提出。YOLOv2采用了端到端的方式直接从整幅图像预测边界框和类别概率,极大......
  • matlab中画图时,一个图中画多条曲线,并且在右上角标注
    matlab中画图时,一个图中画多条曲线,并且在右上角标注点击查看代码figure(1);plot(theta,20*log10(p/max(p)),'LineWidth',2);%除以相当于归一化xlabel('theta/°');xlim([-6060]);ylim([-600]);ylabel('amplitude/dB');title([num2str(N)'阵元线阵来波方向为',num2str(the......
  • 数据分享|MATLAB、R基于Copula方法和k-means聚类的股票选择研究上证A股数据|附代码数
    全文链接:http://tecdat.cn/?p=31733最近我们被客户要求撰写关于Copula的研究报告,包括一些图形和统计输出。Copula方法是测度金融市场间尾部相关性比较有效的方法,而且可用于研究非正态、非线性以及尾部非对称等较复杂的相依特征关系因此,Copula方法开始逐渐代替多元GARCH模型的相......
  • matlab使用Copula仿真优化市场风险数据VaR分析
    原文链接:http://tecdat.cn/?p=4305原文出处:拓端数据部落公众号 使用Copula建模相关默认值 此示例探讨了如何使用多因素copula模型模拟相关的交易对手违约。鉴于违约风险敞口,违约概率和违约信息损失,估计交易对手组合的潜在损失。一个creditDefaultCopula对象用于每个债务人......
  • 基于混沌序列的图像加解密算法matlab仿真,并输出加解密之后的直方图
    1.算法运行效果图预览 2.算法运行软件版本matlab2022a 3.算法理论概述3.1混沌系统特性       混沌系统是一类具有确定性、非线性、初值敏感性、遍历性和伪随机性等特性的动力学系统。其主要特性包括: 确定性:混沌系统由一组确定性微分方程或差分方程描述......
  • m考虑时偏影响的根升余弦滤波器matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:  2.算法涉及理论知识概要        根升余弦滤波器(Root-RaisedCosineFilter,RRCFilter)是一种广泛应用在通信系统中的脉冲整形滤波器,特别是在数字调制传输系统中,用于消除码间干扰(Inter-SymbolInterference,ISI),确保符......
  • MATLAB用GARCH-EVT-Copula模型VaR预测分析股票投资组合
    全文链接:http://tecdat.cn/?p=30426原文出处:拓端数据部落公众号对VaR计算方法的改进,以更好的度量开放式基金的风险。本文把基金所持股票看成是一个投资组合,引入Copula来描述多只股票间的非线性相关性,构建多元GARCH-EVT-Copula模型来度量开放式基金的风险,并与其他VaR估计方法的预......