dct变换
1. 图像变换的基函数
在图像的二维变换中,如果图像本身是正方形的(图像的长与宽相等),并且图像的变换核满足课可分离性和对称性,则此时图像的二维变换可以用两个一维变换代替,并有如下的矩阵表示形式(更过细节请参考《离散余弦变换(DCT)的来龙去脉》)
其中
其中
2. 图像变换的基图像
以二维DCT变换为例介绍图像二维变换的基图像,如下图所示为
图1. n=4时的DCT基函数对应的基图像
这是根据基函数绘制出的由16个小块组成的基图像,其中每个小块由 4×4 个元素(子方块)组成。为了得到左上角块,我们令
3.如何绘制基图像
3.1 原理部分
由上述内容可以知道,基图像就是固定
图2. DCT变换矩阵及两坐标轴意义
上图是根据一维变换核
图3. DCT变换矩阵的转置及两坐标轴意义
因此我们可以看到,当求图1 左上角的基图像时,只需要将图3 中的第一列乘以图2 中的第一行即可;当求图1 顶部行中的第二块的基图像(
3.2 Matlab实现
如果按照上面介绍的方法进行编程实现的话,相信一定是一个两层循环的程序。但是根据《使用矩阵运算替代 for 循环实现信号的DTFT》的思想,这样的一个针对与方阵进行的for循环基本上都可以写成矩阵相乘的形式。比如我们现在的两个矩阵是如下的两个简单的二维矩阵
图4. 简单二维矩阵
如果按照上述介绍的方法,得到的基函数为
但这样的过程也可以通过两矩阵相乘的形式得到,如下所示
观察这两个结果可以看到,只有矩阵的右上角与左下角不同。但是实际上这两部分是对称的,对应到图1的基图像上只是出现水平条纹与竖直条纹的位置发生了变换。但是本身图像就是关于对角线对称的,因此这两个位置发生了变换也没有什么关系,另一方面,从右上角和左下角的矩阵的组成可以看到,右上角的实际上应该是水平的图案,而左下角是垂直的图案,这与图1 中的图像相同。
实验结果如下图所示
这个图像与图1 明显不同,并不是计算的过程有问题,是因为在上述计算的基函数矩阵中有整数有负数,但是灰度图像应该是在[0,1]区间内的,所以需要将计算后的值放缩到[0,1]区间内。这样修改后的实验结果如下图所示
采用MATLAB实现的代码请参考:http://download.csdn.net/download/dugudaibo/10143437
相关阅读
定义 一个离散时间信号x[n]" role="presentation" style="position: relative;">x[n]x[n]的z" role="presentation" style="pos
Cesium中模型操作交互、三维场景交互,常用到坐标变换,各种变换原理请参阅如下链接。 cesium中常用的坐标有两种WGS84地理坐标系和笛
傅里叶变换:傅里叶变换是一种线性的积分变换。它的理论依据是:任何连续周期信号都可以由一组适当的正弦曲线组合而成,即使用简单的正
傅立叶变换 傅立叶变换是一种常见的分析方法,傅立叶变换将满足一定条件的函数表示为一些函数的加权和(或者积分)。可以分为四个类别