EDA365电子论坛网

标题: 基于matlab GUI DWT+DCT+PBFO改进图像水印隐藏提取 [打印本页]

作者: dapmood    时间: 2021-4-25 18:31
标题: 基于matlab GUI DWT+DCT+PBFO改进图像水印隐藏提取
  ~# I  D5 \- [- e) P6 P* `: g
一、引言
% x; a7 J) z, o2 {4 U9 M7 }该篇包括三部分,1)引言、2)图像变化技术简介和代码实现 、3)基于图像变换技术的数字水印技术及代码实现。
3 {4 g- f: u7 G+ A& r: p  [数字水印是一种有效的数字产品版权保护和数据安全维护技术, 是信息隐藏领域的一个重要分支, 也是密码学的一种有益的补充技术。近年来它引起了人们的广泛关注。图像隐形水印是其中最主要的研究方向, 按照嵌入位置可分为空间域方法和变换域( DCT, DFT 和DWT 等) 方法。为了使水印信息有更好的鲁棒性(抵抗攻击的能力)众多学者采用变换域中的嵌入方法,前面我有两篇博客涉及到了有关DCT的数字水印方法和算法,接下来将分别介绍基于DCT、DFT、DWT三种基础图像变换技术的数字水印方法及代码实现。
4 H' }% v! ]/ `, l/ k( |. T+ `0 |
2 r/ K  [. j" J% o
9 ~" T! {5 Z: s" s$ H/ q6 O二、DFT、DCT、DWT图像变换技术
/ z- q2 C1 i; j$ L* c) m( P2 D9 v8 B1 x- g' E. j7 ]9 e+ X- N
图像变换技术是为了能让图像用正交函数或正交矩阵表示而对原图像所作的变换,该变换是二维线性可逆的。一般称原始图像为空间域图像,称变换后的图像为转换域图像(也称为频率域),转换域图像可反变换为空间域图像。经过图像变换后,一方面能够更有效地反映图像自身的特征,另一方面也可使能量集中在少量数据上,更有利于图像的存储、传输及处理。从数学角度来说,图像变换是把图像中的像素表达成“另外一种形式”满足实际需求,大多数情况下需要对变换处理后的图.像进行逆变换,从而获取处理以后的图像。这种变换同样可以应用于其他有关物理或数学的各种问题中,并可以采用其他形式的变量。在数字水印领域中,常用的基础图像变换技术有傅里叶变换(DFT)、离散余弦变换(DCT)、小波变换(DWT)。( v7 y) {; s9 E8 J; k4 \: D+ h5 j
2.1 图像傅里叶变换(DFT)+ L+ b9 P5 v: {) x
傅里叶变换是以时间为自变量的“信号”与频域为自变量的“频普”函数之间的某种变换关系。从纯粹的数学意义上看,傅立叶变换是将一个图像函数转换为一系列周期函数来处理的;从物理效果看,傅立叶变换是将图像从空间域转换到频率域,其逆变换是将图像从频率域转换到空间域。实际上对图像进行二维傅立叶变换得到频谱图,就是图像梯度的分布图,傅立叶频谱图上看到的明暗不一的亮点,实际上图像上某–点与邻域点差异的强弱,即梯度的大小,也即该点的频率大小。如果频谱图中暗的点数更多,那么实际图像是比较柔和的:反之,如果频谱图中亮的点数多,那么实际图像一定是尖锐的,边界分明且边界两边像素差异较大。0 n% Z2 X5 L- C% {
傅里叶变换包括一维连续傅里叶变换、二维连续傅里叶变换、一维离散傅里叶变换、二维离散傅里叶变换。在图像处理领域中常用二维离散傅里叶变换。其定义如下式(1):
* ~5 g- v! @1 ^- G2 M" G, H0 C$ A. R" K" V

1 v9 _' m/ b1 t2 J. Q8 u6 {7 g4 h9 b' x6 F, G; a3 {
; b0 L& c' w. V4 @4 q8 `& S
二、源代码
0 n) g) n% Z5 H1 ]9 h- J, p5 Q, k1 ^( P1 E; k% w
  l5 z9 E/ n) f( h# ~+ q, M, p
       * G- C$ v4 D, O! f
! L$ ]8 K3 S! Z. h+ V& `
) d" W1 c3 s3 a) I  b! U( j! X
其运行结果如下图:4 w- I, ~% C9 |- w" W8 n" y

' @% |5 r3 U2 z- {' `  }
+ R/ e+ h6 r/ V8 L! m) g9 ]6 W
  t9 j7 i* h5 d5 Q! a/ a图1 图像傅里叶变换例
" P% g1 e) |- N+ W$ ~& G& L5 n! j/ r" ?' }0 N! e
   2.2 离散余弦变换(DCT)
5 j$ w" \2 j* O& k1 C( J2 Y9 x- l
" Z( V; M; L# n+ _1 y   离散余弦变换(DCT)是一组不同频率和幅值的余弦函数和来近似一副图像,实际上是傅里叶变换的实数部分。由于离散余弦变量对于一副图像,其大部分可视化信息都集中在少数的变换系数上。因此,离散余弦变量是数据压缩常用的一个变换编码方法,它能将高相关数据能量集中,使得它非常适用于图像压缩,例如国际压缩标准的JPEG格式中就采用了离散余弦变换。# K6 g! \# m; F# W- \
* z, S1 o2 ^! Q' f
   在傅立叶变换过程中,如果被展开的函数是实偶函数,那么其傅立叶变换中只包含余弦项,基于傅立叶变换的这一特点,人们提出了离散余弦变换。DCT变换先将图像函数变换成偶函数形式,再对其进行二维离散傅立叶变换,因此DCT变换可以看成是一种简化的傅立叶变换。离散余弦变换叶分为一维离散余弦变换和二维离散余弦变换,在图像处理中用到二维变化,所以介绍下其二维定义,其他定义可查阅《数字图像处理》——冈萨雷斯。其二维离散余弦变换定义如下式:
* K: o) ~! U, P+ F# T   / u( |" O- y. a' Z# S
% E& y+ _9 `7 m0 W! q3 o6 r
2 G* `' l6 M/ G2 `& x$ S
( I& U8 `& L* H* E+ B, y

' g8 \8 i( }5 s' Z0 g8 J* F
3 z2 ]7 R4 }+ B' L3 L* h% ]& v6 i: U
1 y6 i" ^- b* j/ J) Q) h! A9 K
其运行结果如下图2:/ k. _5 Y3 P& y! V$ Q" C  Q4 v
- @1 c) j7 ^3 r& a* o

$ [( {% H0 F$ p+ @7 ]9 |6 M
* G/ z) I6 ?6 B" q: y0 h  O# ~! i& z! M7 R; D+ F
图2 离散余弦变换例: E8 n  u5 H7 Q* m: d/ w

; P% r# z/ u4 e# Y. F/ B9 X   2.3 小波变换(DWT)# t+ Y3 n" M  u, O* N* Y9 U
1 ?0 T5 Q4 ~  s: \# E
  小波变化是对傅里叶变换和短时傅里叶变换的一个突破,其改变就在于,将无限长的三角函数基换成了有限长的会衰减的小波。小波变化的理论较多,更多内容可查阅《数字图像处理》——冈萨雷斯相关章节内容,以下从一个叫简单的角度来解释小波变换。, ?4 G% F- a! B' R: b2 V
/ \& F+ p" t+ P6 Q3 V
+ q0 J; h( S9 _$ G9 X7 B1 g

6 T; T. ?7 e2 w" i
7 `6 `6 \8 E+ C  Q+ u
" M' I# d7 V" g4 b: m5 s8 ^% N# d) I. T5 z% |, {$ O$ ]

5 W1 b' t/ L( i8 C表1 小波变换母小波
" Y6 t6 L& j( @3 ~( B
. Y1 Z# j0 i8 ?  T1 G. V* Z% P2 c. {) b9 `! `" C
                0 e! l+ g& [) T8 d9 r
5 g$ W/ |" l* O& ^, ^
+ M. E) }8 ^! w* z* |1 s' M; I
7 M' U; }' }7 G; O9 |- w

作者: yin123    时间: 2021-4-25 18:36
基于matlab GUI DWT+DCT+PBFO改进图像水印隐藏提取
作者: NNNei256    时间: 2021-4-26 18:50
基于matlab GUI DWT+DCT+PBFO改进图像水印隐藏提取




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2