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

简介: **算法摘要:**- 图形展示:展示灰度与彩色图像水印应用,主辅水印嵌入。- 软件环境:MATLAB 2022a。- 算法原理:双重水印,转换至YCbCr/YIQ,仅影响亮度;图像分割为M×N块,DCT变换后嵌入水印。- 流程概览:两步水印嵌入,每步对应不同图示表示。- 核心代码未提供。

1.算法运行效果图预览
灰度图
image.png

彩色图

image.png

2.算法运行软件版本
matlab2022a

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

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

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

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

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

第一重水印:
image.png

第二重水印:

image.png

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('第二重水印提取');
相关文章
|
13天前
|
算法 计算机视觉
图像处理之积分图应用四(基于局部均值的图像二值化算法)
图像处理之积分图应用四(基于局部均值的图像二值化算法)
21 0
|
2天前
|
机器学习/深度学习 人工智能 算法
【CVPR2024】面向StableDiffusion的编辑算法FreePromptEditing,提升图像编辑效果
近日,阿里云人工智能平台PAI与华南理工大学贾奎教授团队合作在深度学习顶级会议 CVPR2024 上发表 FPE(Free-Prompt-Editing) 算法,这是一种面向StableDiffusion的图像编辑算法。在这篇论文中,StableDiffusion可用于实现图像编辑的本质被挖掘,解释证明了基于StableDiffusion编辑的算法本质,并基于此设计了新的图像编辑算法,大幅度提升了图像编辑的效率。
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
【CVPR2024】阿里云人工智能平台PAI图像编辑算法论文入选CVPR2024
近期,阿里云人工智能平台PAI发表的图像编辑算法论文在CVPR-2024上正式亮相发表。论文成果是阿里云与华南理工大学贾奎教授领衔的团队共同研发。此次入选标志着阿里云人工智能平台PAI自主研发的图像编辑算法达到了先进水平,赢得了国际学术界的认可。在阿里云人工智能平台PAI算法团队和华南理工大学的老师学生们一同的坚持和热情下,将阿里云在图像生成与编辑领域的先进理念得以通过学术论文和会议的形式,向业界传递和展现。
|
5天前
|
机器学习/深度学习 算法
基于BP神经网络和小波变换特征提取的烟草香型分类算法matlab仿真,分为浓香型,清香型和中间香型
```markdown 探索烟草香型分类:使用Matlab2022a中的BP神经网络结合小波变换。小波分析揭示香气成分的局部特征,降低维度,PCA等用于特征选择。BP网络随后处理这些特征,以区分浓香、清香和中间香型。 ```
|
6天前
|
编解码 算法 PyTorch
超好用!图像去雾算法C2PNet介绍与使用指南
超好用!图像去雾算法C2PNet介绍与使用指南
|
9天前
|
存储 编解码 算法
C#.NET逃逸时间算法生成分形图像的毕业设计完成!晒晒功能
该文介绍了一个使用C#.NET Visual Studio 2008开发的程序,包含错误修复的Julia、Mandelbrot和优化过的Newton三种算法,生成色彩丰富的分形图像。作者改进了原始算法的效率,将内层循环的画点操作移至外部,提升性能。程序提供五种图形模式,支持放大缩小及颜色更新,并允许用户自定义画布大小以调整精度。还具备保存为高质JPG的功能。附有四张示例图片展示生成的分形效果。
|
10天前
|
存储 机器学习/深度学习 算法
python 五种算法转置后翻转、层次旋转、递归分块、一次性旋转、环状替换 实现旋转图像【力扣题48】
python 五种算法转置后翻转、层次旋转、递归分块、一次性旋转、环状替换 实现旋转图像【力扣题48】
|
13天前
|
算法 计算机视觉
图像处理之基于泛红算法的二值图像内部区域填充
图像处理之基于泛红算法的二值图像内部区域填充
18 0
|
13天前
|
算法 计算机视觉
图像处理之图像快速旋转算法
图像处理之图像快速旋转算法
13 1
|
13天前
|
算法 C语言 计算机视觉
图像处理之图像快速插值放缩算法
图像处理之图像快速插值放缩算法
15 0

热门文章

最新文章