当前位置:网站首页>【图像隐藏】基于混合 DWT-HD-SVD 的数字图像水印方法技术附matlab代码
【图像隐藏】基于混合 DWT-HD-SVD 的数字图像水印方法技术附matlab代码
2022-07-25 15:58:00 【Matlab科研工作室】
1 内容介绍
文章提出一种基于离散小波变换(DWT),Hessenberg分解(HD)和奇异值分解(SVD)的图像水印方法.在嵌入过程中,对原始载体图像进行多级DWT分解,并将得出的子带系数作为HD的输入.在创建水印的同时对SVD进行操作,通过缩放因子将水印嵌入到主图像中..在各种欺骗攻击下,将所提出的方法与其他方法进行比较,实验结果表明,该方法对水印具有良好的鲁棒性和不可见性.
图像的鲁棒性和不可见性是评价水印技术有效性的两个 主要指标。水印技术大致可以分为三类,即鲁棒水印、脆弱 水印和半脆弱水印 [1]。鲁棒水印对图像数据的保护至关重要, 因为它不会显著降低水印图像的视觉质量,而且还能够抵御 各种攻击。因此,鲁棒水印广泛用于版权保护和所有权验证。 脆弱水印仅用于保证图像的完整性,并不能验证实际的所有 权。半脆弱水印融合了脆弱水印和鲁棒水印的优点,旨在检 测未经授权的操作,同时保持对授权操作的鲁棒性。此外, 还可以在变换后的域内完成嵌入过程,如奇异值分解(SVD)、 离散余弦变换(DCT)、离散傅立叶变换(DFT)、离散小 波变换(DWT)。研究表明,人眼视觉对中低频系数更为敏感。因此,变 换域内的运算方法具有良好的性能,特别是当水印嵌入在低 频范围内时。基于 DWT 的水印方法具有分辨率高、能量压 缩性好、视觉质量高等优点,可用于图像水印。然而,基于 DWT 的水印难以抵抗几何攻击。这个弊端可以采用矩阵分 解方法提取图像的几何特征来解决,基于 DWT 和矩阵分解 的方法广泛应用于图像水印中,从而使水印能够耐受一定程 度的图像处理和图像几何攻击 [2]。水印中最常用的矩阵分解 方法包括 SVD 和 Hessenberg 分解(HD)。此外,鲁棒性和 不可见性是评价图像水印的两个主要指标,二者之间的性能 平衡是非常具有挑战性的。本文利用 FOA 算法对算法中的 参数因子进行了改进,在鲁棒性和不可见性之间进行了权衡。 本文提出一种结合 DWT、HD 和 SVD 的图像水印算法 [3]。 性能测试结果表明,该方法具有较高的鲁棒性和不可见性, 且没有水印大小的约束。
输入图像经过多级小波分解后,生成三个高频带 HH、 LH、HL 以及一个低频带 LL,如图 1 所示。其中低频带系 列是小波分解级数对应的最小分辨率和最大尺度下对原始图 像的最佳逼近。其统计特征与原图像近似,图像的大部分能 量集中于此。高频带是图像在不同分辨率和不同尺度下蕴含 的细节信息。分辨率越低,其中的有用信息比例就越高。图 像小波分解分成若干级,对于同级图像,低频子图像 LLj 最 重要,其次是 LHj 和 HLj,而高频子图像 HHj 相对不重要。 对于不同级来说,级高者重要,级低者不重要,如图 1 所示。 小波理论使得进一步的分解成为可能,直至子带的大小达到 水印的标准。与其他子带相比,LL 的攻击性能更优,例如 对滤波、压缩攻击。这一特性使 LL 子带成为鲁棒水印的最 佳候选 [4]。



2 仿真代码
<span style="color:#333333"><span style="background-color:rgba(0, 0, 0, 0.03)"><code>%% This function applies attacks <span style="color:#ca7d37">on</span> images</code><code>% Input: image, attack type, attack <span style="color:#dd1144">parameters</span> (different <span style="color:#ca7d37">for</span> each attack)</code><code>function [watermarked_image] = Attacks(watermarked_image,attack,param)</code><code><span style="color:#ca7d37">switch</span> attack</code><code> <span style="color:#ca7d37">case</span> <span style="color:#dd1144">'No Attack'</span></code><code> <span style="color:#ca7d37">case</span> <span style="color:#dd1144">'Median'</span></code><code> watermarked_image = medianAttack(watermarked_image,param);</code><code> <span style="color:#ca7d37">case</span> <span style="color:#dd1144">'Gaussian noise'</span></code><code> watermarked_image = noiseGauss(watermarked_image,param);</code><code> <span style="color:#ca7d37">case</span> <span style="color:#dd1144">'Salt and pepper noise'</span></code><code> watermarked_image = noiseSaltPepper(watermarked_image);</code><code> <span style="color:#ca7d37">case</span> <span style="color:#dd1144">'Speckle noise'</span></code><code> watermarked_image = noiseSpeckle(watermarked_image);</code><code> <span style="color:#ca7d37">case</span> <span style="color:#dd1144">'Sharpening attack'</span></code><code> watermarked_image = sharpenAttack(watermarked_image,param);</code><code> <span style="color:#ca7d37">case</span> <span style="color:#dd1144">'Rotating attack'</span></code><code> watermarked_image = rotatAttack(watermarked_image);</code><code> <span style="color:#ca7d37">case</span> <span style="color:#dd1144">'Motion blur'</span></code><code> watermarked_image = motionAttack(watermarked_image);</code><code> <span style="color:#ca7d37">case</span> <span style="color:#dd1144">'Average filter'</span></code><code> watermarked_image = averageFilter(watermarked_image);</code><code> <span style="color:#ca7d37">case</span> <span style="color:#dd1144">'JPEG2000 compression'</span></code><code> watermarked_image = jp2Attack(watermarked_image,param);</code><code> <span style="color:#ca7d37">case</span> <span style="color:#dd1144">'JPEG compression'</span></code><code> watermarked_image = jpegAttack(watermarked_image,param);</code><code> <span style="color:#ca7d37">case</span> <span style="color:#dd1144">'Gaussian low-pass filter'</span></code><code> watermarked_image = GlowpassFilter(watermarked_image,param);</code><code> <span style="color:#ca7d37">case</span> <span style="color:#dd1144">'Histogram equalization'</span></code><code> watermarked_image = histAttack(watermarked_image);</code><code> <span style="color:#ca7d37">case</span> <span style="color:#dd1144">'Rescaling (0.25)'</span></code><code> watermarked_image = rescaleAttack(watermarked_image);</code><code> % please write <span style="color:#ca7d37">this</span> attack code</code><code> <span style="color:#ca7d37">case</span> <span style="color:#dd1144">'Rescaling (4)'</span></code><code> watermarked_image = rescale4Attack(watermarked_image);</code><code> % please write <span style="color:#ca7d37">this</span> attack code</code><code> <span style="color:#ca7d37">case</span> <span style="color:#dd1144">'Crop attack'</span></code><code> % please write <span style="color:#ca7d37">this</span> attack code</code><code> watermarked_image = cropAttack(watermarked_image);</code><code> <span style="color:#ca7d37">case</span> <span style="color:#dd1144">'Winner filter'</span></code><code> % please write <span style="color:#ca7d37">this</span> attack code</code><code> otherwise</code><code> <span style="color:#dd1144">errordlg</span>(<span style="color:#dd1144">'Please specify attack!'</span>);</code><code></code><code></code><code></code><code></code><code></code><code>end</code><code>end</code><code></code><code></code></span></span>3 运行结果

4 参考文献
[1]甘志超, 刘丹. 基于HD和SVD的DWT变换的数字图像水印[J]. 现代信息科技, 2022, 6(1):4.
- 张保生 . 学术评价的性质和作用 [J]. 学术研究,2006(2): 10-15+147.
- [2] 邓毅 .CSSCI 与学术评价 [J]. 华南师范大学学报(社会科 学版),2006(4):135-137.
- [3] 张玲玲,蔺梅芳 . 时间——引文分布特征下学者 P 指数研 究 [J]. 现代情报,2019,39(1):169-177.
- [4] 金碧辉,RONALD R. R 指数、AR 指数:h 指数功能扩 展的补充指标 [J]. 科学观察,2007(3):1-8.
- [5] 朱云霞,朱惠 . 一种新的学术评价指标的研究与实证 [J]. 西南民族大学学报(人文社会科学版)2012,33(7):230-233.
- [6] 朱毅华,石晓迪 .Q 指数的改进及其实证研究 [J]. 情报探 索,2020(10):5-7.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
边栏推荐
- 意向锁(Intention Lock)
- leetcode:528. 按权重随机选择【普通随机失效 + 要用前缀和二分】
- MySQL教程65-MySQL操作表中数据
- MySQL 元数据锁(MDL)
- MySQL隐式锁
- Zhaoqi Kechuang high-level innovation and Entrepreneurship Talent Service Platform at home and abroad, mass entrepreneurship and innovation achievement transformation platform
- Redis distributed lock, it's really impossible without it
- Product dynamics - Android 13 high-efficiency adaptation new upgrade
- 【IJCAI 2022】参数高效的大模型稀疏训练方法,大幅减少稀疏训练所需资源
- Data system partition design - Request Routing
猜你喜欢

面试突击:为什么 TCP 需要 3 次握手?

Boomi荣获“多元化最佳首席执行官奖”和“职业成长最佳公司奖”,在大型公司类别中跻身50强

Crazy God redis notes 12

Equivalent change of resistance circuit (Ⅱ)

Introduction to redis

Matlab -- CVX optimization kit installation

泰雷兹推出解决方案,助力SAP客户控制云端数据

Alibaba's internal "100 billion level concurrent system architecture design notes" are all inclusive, too comprehensive

Product dynamics - Android 13 high-efficiency adaptation new upgrade
![Leetcode:154. find the minimum value II in the rotation sort array [about the middle and rear positioning dichotomy of the rotation sort array]](/img/03/54a2d82a17cd07374dc0aedacd7b11.png)
Leetcode:154. find the minimum value II in the rotation sort array [about the middle and rear positioning dichotomy of the rotation sort array]
随机推荐
ML - Speech - Introduction to speech processing
Mysql读写锁
Permission management - delete menu (recursive)
MySQL intent lock
JWT diagram
电阻电路的等效变化(Ⅱ)
行云管家V6.5.1/2/3系列版本发布:数据库OpenAPI能力持续强化
Which led display manufacturer is better
Pagehelper.startpage is not effective
Copy a word style template to another document
Boomi荣获“多元化最佳首席执行官奖”和“职业成长最佳公司奖”,在大型公司类别中跻身50强
Simple rotation map and hamster beating
"Digital security" alert NFT's seven Scams
Release of v6.5.1/2/3 series of versions of Xingyun housekeeper: the ability of database OpenAPI continues to be strengthened
MATLAB optimization tool manopt installation
Leetcode:6127. Number of high-quality number pairs [bit operation finding rules + the sum of two numbers is greater than or equal to K + dichotomy]
MySQL教程66-数据表查询语句
没错,请求DNS服务器还可以使用UDP协议
MySQL tutorial 65 data in MySQL operation table
【IJCAI 2022】参数高效的大模型稀疏训练方法,大幅减少稀疏训练所需资源