二维离散余弦变换

时间:2013-11-30 23:28:02

标签: matlab image-processing dct

我在Matlab中使用dct函数进行了检查,但它只在列中实现了DCT以进行矩阵输入:

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

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

1 个答案:

答案 0 :(得分:3)

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

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

dct(dct(A.').')

图像处理工具箱中还有dct2,实现的核心是

b = dct(a, mpad);
if m > 1 && n > 1, b = dct(b.', npad).'; end