MATLAB 帮助中心
离散余弦变换矩阵
D = dctmtx(n)
D = dctmtx(n) 返回 n×n 离散余弦变换 (DCT) 矩阵,您可以使用该矩阵对图像执行二维 DCT。
D
n
示例
全部折叠
将图像读入工作区,并将其强制转换为 double 类。
double
A = im2double(imread('rice.png')); imshow(A)
计算离散余弦变换矩阵。
D = dctmtx(size(A,1));
将输入图像 A 乘以 D 得到 A 列的 DCT,乘以 D' 得到 A 列的逆 DCT。
A
D'
dct = D*A*D'; imshow(dct)
DCT 矩阵的大小,指定为正整数。
数据类型: double
DCT 矩阵,以大小为 n×n 的数值矩阵形式返回。
如果您有一个 n×n 图像 A,则 D*A 是 A 列的 DCT,D'*A 是 A 列的逆 DCT。
D*A
D'*A
A 的二维 DCT 可以计算为 D*A*D'。此计算有时比使用 dct2 更快,特别是当您计算大量小型 DCT 时,因为 D 只需确定一次。
D*A*D'
dct2
例如,在 JPEG 压缩中计算每个 8×8 数据块的 DCT。要执行此计算,请使用 dctmtx 确定 D,然后使用 D*A*D' 计算每个 DCT(其中 A 是每个 8×8 数据块)。这比为每个单独数据块调用 dct2 更快。
dctmtx
在 R2006a 之前推出
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处