当前位置:网站首页>【图像隐藏】基于混合 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代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
边栏推荐
- Implementation of recommendation system collaborative filtering in spark
- Save the image with gaussdb (for redis), and the recommended business can easily reduce the cost by 60%
- MySQL read / write lock
- SVD singular value decomposition derivation and application and signal recovery
- 国债年化利率太低了,有比国债逆回购年化利率还要高的理财产品吗?
- Waterfall flow layout
- MySQL教程68-AS 设置别名
- MySQL 悲观锁
- HDD Hangzhou station · harmonyos technical experts share the features of Huawei deveco studio
- 推荐收藏,这或许是最全的类别型特征的编码方法总结
猜你喜欢

Upgrade esxi6.7.0 to 7.0u3f (updated on July 12, 2022)

华为2023届提前批预热开始!左 神的程序代码面试指南终派上用场

Win11自带画图软件怎么显示标尺?

ML - Speech - Introduction to speech processing

TypeError: Unrecognized value type: <class ‘str‘> ParserError: Unknown string format

Win11桌面切换快捷键是什么?Win11快速切换桌面的方法

leetcode:6127. 优质数对的数目【位运算找规律 + 两数之和大于等于k + 二分】
![[wechat applet] detailed explanation of applet host environment](/img/57/582c07f6e6443f9f139fb1af225ea4.png)
[wechat applet] detailed explanation of applet host environment

【莎士比亚:保持做人的乐趣】
![[IJCAI 2022] parameter efficient large model sparse training method, which greatly reduces the resources required for sparse training](/img/d4/bcc577f320a893c7006177993b2e7a.png)
[IJCAI 2022] parameter efficient large model sparse training method, which greatly reduces the resources required for sparse training
随机推荐
Exclusive lock
[wechat applet] detailed explanation of applet host environment
MySQL tutorial 66 data table query statement
兆骑科创海内外高层次创新创业人才服务平台,双创成果转化平台
MySQL乐观锁
MySQL explicit lock
推荐系统-协同过滤在Spark中的实现
MySQL tutorial 67- filter duplicate data using distinct
leetcode:528. 按权重随机选择【普通随机失效 + 要用前缀和二分】
哪个led显示屏厂家更好
MySQL table write lock
MySQL implicit lock
Implementation of recommendation system collaborative filtering in spark
[IJCAI 2022] parameter efficient large model sparse training method, which greatly reduces the resources required for sparse training
mysql 隔离级别事务
Release of v6.5.1/2/3 series of versions of Xingyun housekeeper: the ability of database OpenAPI continues to be strengthened
0x80131500打不开微软商店的解决办法
Intention lock
MySQL显式锁
Shared lock