DFT(离散傅里叶变换)和DCT(离散余弦变换)有何区别和联系?
首先,在理解这3个变量之前,你要知道DTFT:
DTFT是离散时间傅里叶变换,用来表达连续的信号的频谱。
然后理解DFT:
DFT是离散傅里叶变换,针对的是离散的信号和频谱。DFT是DTFT变化而来,其实就是将连续时间t变成了nT.
为什么要这样做呢,因为计算机是在数字环境下工作的,它不可能看见或者处理现实中连续的信号,只能够进行离散计算,在真实性上尽可能地逼近连续信号。所以DFT是为了我们能够去用工具分析信号而创造出来的,通常我们直接用DTFT的机会很少。
然后再理解FFT:
首先,DCT是DFT的一种形式。所谓“余弦变换”,是在DTFT傅立叶级数展开式中,如果被展开的函数是实偶函数,那么其傅立叶级数中只包含余弦项,再将其离散化(DFT)可导出余弦变换,因此称之为离散余弦变换(DCT)。其实DCT属于DFT的一个子集。DCT用于语音和图像处理比较多。
DCT嵌入水印与DWT是擦不多的。在Matlab上直接用函数的话值是一样的,应该说DWT包含DCT。下面我说一下嵌入过程,程序就不写了。网上很多的。给你一个嵌入思路。
DWT方法。原图大小为(512,512)嵌入大小为(64,64)
嵌入:
读取原。
读取水印。
原要处理为灰图。
水印要处理为2值图。
生成伪随机乱数(记住是怎么生成的,提取时用到)。
随机乱数做成2值图K与水印图生成密钥WK的2值图(方法有很多种)。
原做3次DWT处理(Matlab里函数是dwt2)得到DA,DB,DC,DD。
取出DB或DC,或者DB,DC都用上,设一个嵌入强度Q,与密钥K一起嵌入到DB,DC中(方法有很多种)。
将嵌入后的DB,DC与没有嵌入的DA,DD一起(DA,DB,DC,DD顺序不要错了)进行反DWT处理。
得到嵌入水印后的进行保存。
提取:
读取嵌入水印后的。
嵌入水印后的做3次DWT,并得到DA,DB,DC,DD。
定义Q(嵌入时的强度,比如5)。
生成嵌入水印时的伪随机乱数并做成2值图K。
取出,嵌入水印的成分(嵌入到DB的话取出DB,两个都用了就两个都取出,在这里用DB代替)。
进行嵌入时的反计算。
提取后的水印进行保存。
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!