我在 Matlab 中检查了dct
函数,但它只在矩阵输入的列中实现了 DCT:
>> help dct
If X is a matrix, the DCT operation is applied to each
column.
Matlab中是否有可以执行2D DCT的函数,或者是否有一些算法可以应用dct
,进行一些变换,然后获得2D 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?
根据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