MATLAB 图像嵌入水印图像程序

原理:

水印的嵌入

  1. 对64x64像素的水印图像(可为rgb或灰度图像)进行猫脸变换,得到置乱后的水印图像W′W'W′;
  2. 对512x512像素的载体图像分割成互不重叠的8x8的小方块,后对每个小块进行DCT离散余弦变换,取变换矩阵中的中频系数构成4x4的矩阵Bij(i=1,2,...,m;j=1,2,...,n)B_{ij}(i=1,2,...,m; j=1,2,...,n)Bij​(i=1,2,...,m;j=1,2,...,n);
  3. 对BijB_{ij}Bij​矩阵进行奇异值分解SVD,取最大的奇异值构成矩阵AAA,再对AAA进行奇异值分解: A=USVTA=USV^TA=USVT;
  4. 将置乱后的水印图像矩阵W′W'W′叠加到矩阵SSS上,
    • D=S+αW′D=S+\alpha W'D=S+αW′ (常数α\alphaα为嵌入因子)
    • 奇异值分解 D=U1S1V1TD = U_1S_1V_1^TD=U1​S1​V1T​
    • 反变换得 A′=US1VTA'=US_1V^TA′=US1​VT
  5. 将 A′A'A′中相应的元素替换 BijB_{ij}Bij​中的最大奇异值,将变换后的中频系数矩阵 BijB_{ij}Bij​还原回相应的块中;
  6. 对每一块嵌入了水印信息的矩阵进行逆DCT变换,最后得到嵌入了水印图像信息的图像I′I'I′。

水印的提取

  1. 对图像I*分成8x8的小块,并对每一个小块进行DCT离散余弦变换;
  2. 取每一块中的16个中频系数,构成矩阵Bij*; 后对其进行奇异值分解SVD,取最大奇异值构成矩阵A*;
  3. 设需要提取的水印图像为W*,提取步骤为:
    • A=U∗S∗V∗TA=U*S*V*TA=U∗S∗V∗T
    • D=U1∗S∗V1TD = U_{1}*S*V_1^TD=U1​∗S∗V1T​
    • W∗=(D−S)/αW^* = (D-S)/\alphaW∗=(D−S)/α
  4. 将提取出的灰度水印图像经过猫脸逆变换,得到水印图像。

程序

此程序将水印图像添​​加到载体图像中以进行加密。此程序包含 3 个文件,分别是:

  1. watermark_main.m : 添加水印的主函数,
  2. ArnoldTransform.m : 猫脸变换函数(arnold transform),
  3. InverseArnoldTransform.m : 猫脸逆变换函数(inverse arnold transform).

watermark_main函数的输入参数为:

  1. base_img_path: 载体图像路径,
  2. watermark_img_path: 水印图像路径,
  3. save_img1_path: 保存加过水印的图像路径,
  4. save_img2_path: 保存提取的水印图像路径.

该程序需要一个载体图像,即想要使用水印加密的图像和想要嵌入到载体图像中的水印图像。在水印嵌入过程中,载体图像和水印图像会从rgb转换为灰度,水印图像也会被转换成64*64像素。

这个博客中的程序可从github中下载使用。

MATLAB 图像嵌入水印图像程序相关推荐

  1. 【Matlab 图像】图像基础操作

    图像基础操作 读取图片 读取视频 读取图片 % 读取图像 Img = imread('test2.png'); subplot(2,2,1); imshow(Img); title('原图(RGB图) ...

  2. matlab 多个波段,MatLab读取ENVI图像统计多波段图像信息

    在ENVI统计遥感多波段图像中每个波段的均值.方差.最大值.最小值是比较容易办到的,但是如果要处理多批的数据就没有那么方便了,这里转载一个MatLab读取ENVI图像(img+hdr)的程序,并且计算 ...

  3. MATLAB小波变换的图像融合系统[完美运行,GUI界面,详细教程,万字文稿]

    课题题目 基于MATLAB小波变换的图像融合系统 GUI框架链接:戳这里 课题背景介绍 数字图像融合是一项最新发展起来的应用,对于数字图像处理和数字图像分析起着非常重要的重要.虽然现阶段,对于图像处理 ...

  4. MATLAB#183;提取图像中多个目标

    基于matlab工具箱提取图像中的多目标特征(代码如下): 代码前面部分为提取图像的边界信息,调用了后面的遍历函数Pixel_Search,函数实现方法见后~ %%ROI Testing close ...

  5. MATLAB计算杨氏模量,基于MATLAB处理动态图像的杨氏模量测量方法.doc

    7A版优质实用文档 PAGE PAGE 16 7A版优质实用文档 基于MATLAB处理动态图像的杨氏模量测 量方法 黄浩钊1,陈玥琦2,李家卉3 第三军医大学学员13营,重庆,400038:2.第三军 ...

  6. matlab 画图白边,matlab保存画框图像去白边

    在matlab图像处理中,为了标识出图像的目标区域来,需要利用plot函数或者rectangle函数,这样标识目标后,就保存图像. 一般saves保存的图像存在白边,可以采用imwrite对图像进行保 ...

  7. MATLAB图形图像处理——图像灰度变换

    MATLAB图形图像处理--图像灰度变换 一.MATLAB入门知识 1.什么是MATLAB 2.MATLAB处理图像 图像数据 数据类型 位深 函数 imread imwrite 二.图像灰度变换基础 ...

  8. matlab wdencmp函数,图像的小波阈值降噪_小波降噪函数 - 全文

    小波降噪的方法有多种,如利用小波分解与重构的方法滤波降噪.利用小波变换模极大值的方法去噪.利用信号小波变换后空域相关性进行信噪分离.非线性小波阈值方法去噪.平移不变量小波降噪法,以及多小波降噪等等.归 ...

  9. matlab ndims 图像对称,MATLAB实现将图像转换为素描(简笔画)风格

    代码: colorgrad.m function [VG, A, PPG] = colorgrad(f, T) if (ndims(f)~=) || (size(f,)~=) error('Input ...

最新文章

  1. 独家|一文解读合成数据在机器学习技术下的表现
  2. 人人都能学会的python编程教程11:定义函数
  3. Hankson的趣味题 解题记录
  4. hdu 1575Tr A
  5. 修改PostgreSQL数据库默认用户postgres的密码
  6. 细数25个硅谷最热创业公司 寻找创业灵感
  7. Sublime text 入门学习资源篇及其基本使用方法
  8. gdb ldexp_带有Python示例的math.ldexp()方法
  9. oracle强制drop用户,强制Oracle Drop全局临时表
  10. 中国加热织物市场趋势报告、技术动态创新及市场预测
  11. transform与rigibody以及角色控制器的运动
  12. 中国科学院全国名词委组合数学和计算机科学研究开发中心 顾同新,有关组合数学家陆家羲的几点史实澄清.doc...
  13. 城市土地利用分布数据/城市功能区划分布数据/城市poi感兴趣点/植被类型分布
  14. oracle集群如何搭建,Oracle集群搭建步骤.docx
  15. dfuse 的 GraphQL 端点现在提供经过 ABI 解码的数据库行为信息
  16. java 蓝桥杯 分机号
  17. wan端口未连接怎么弄_路由器wan口未连接怎么办?
  18. 关于固态硬盘SSD的4K对齐
  19. vue : 无法加载文件 C:\Users\xxx\AppData\Roaming\npm\vue.ps1,因为在此系统上禁止运行脚本
  20. 爬取起点中文网站原创风云榜小说排行

热门文章

  1. 什么是私域流量?如何运营?
  2. 前端开发必备神级资源
  3. 第三只眼监控软件第三只眼网络监控软件
  4. linux安装jenkins启动卡在初始页面 | 插件下载不了,报SSL错误等问题避坑 | No valid crumb was included in request for /ajaxBuildQ
  5. Scrapy入门到放弃06:Spider中间件
  6. 10个2018年度最佳网站设计实例赏析及原型分享
  7. 赠书 002丨文化改变脑,是玄学?
  8. 《当下的启蒙》的概述和精华
  9. Visual Studio中的rc是什么文件
  10. 清微智能CTO欧阳鹏:架构创新是通往高性能计算芯片必由之路|量子位·视点分享回顾...