1

我在 Matlab 中检查了dct函数,但它只在矩阵输入的列中实现了 DCT:

>> help dct 
If X is a matrix, the DCT operation is applied to each
column.

Matlab中是否有可以执行2D DCT的函数,或者是否有一些算法可以应用dct,进行一些变换,然后获得2D DCT?

4

1 回答 1

3

根据Wikipedia的说法,“各种 DCT 类型的多维变体直接遵循一维定义:它们只是沿每个维度的 DCT 的可分离产品(等效地,组合)。”

在此之后,您应该能够通过计算获得 2d-DCT

dct(dct(A.').')

Image Processing Toolbox 里面也有dct2,实现的核心是

b = dct(a, mpad);
if m > 1 && n > 1, b = dct(b.', npad).'; end
于 2013-11-30T23:36:16.693 回答