示例:离散余弦变换
使用
dct 和
idct 函数可分别计算离散的余弦变换与逆变换。该变换的优点在于可将大部分图像“能量”或信息集中到某些频率分量中,非常适用于编码操作。
1. 定义大小为 N x P 的矩阵 M。
2. 余弦变换的实现使用 II 型 DCT。将 DCT 定义为此变换的解析式。
3. 计算矩阵 DCT。
4. 将函数 dct 应用于矩阵 M。
5. 计算 DCT 和 dct 函数之间的最大误差。
能量压缩
余弦变换具有很好的能量压缩属性,这意味着它可将大部分能量集中到变换的前几个系数上。
1. 定义输入矩阵。
2. 将函数 dct 应用于矩阵 M 并对其进行计算。
生成的矩阵显示大部分与系数值相关的能量都集中在前几个系数上。
idct
反函数用于从变换恢复原始图像。
1. 读取黑白版的蒙娜丽莎图像。
(mona.bmp)
2. 应用 dct 函数来变换图像。
(mona_noise.bmp)
3. 应用反函数来恢复图像。
(mona_rec.bmp)
4. 通过查看变换后的图像和原始图像的柱状图验证 DCT 的能量压缩属性。
变换后的图像将大部分能量集中到了柱状图的前几个柱上,而原始图像的能量分布则是分散的。这使变换后的图像更适合编码或传输,因为使用较少的频率分量即可传送大部分图像信息。因此,DCT 可用于图像压缩。