我有一张512x512大小的灰度图像。我想把矩阵转换成dct,所以这是我所做的。
场景1:对整个镜像应用DCT
img = imread('cameraman.tif');
img_dct = dct2(img);
场景2:将DCT应用于原始图像的前8x8块
img2 = imread('cameraman.tif);
img_block = img2(1:8, 1:8);
img_block_dct = dct2(img_block);
现在,有趣的地方来了(或者我做错了什么),当我显示img_dct(1:8, 1:8)和img_block_dct时,我得到了两个非常不同的8x8矩阵。这两个是不是应该完全相同,还是我弄错了?
发布于 2015-06-20 00:34:34
它将不会是相同的。通过DCT2方程,DCT系数取决于图像的大小。如果你做了分块M=8 N=8,否则它将是图像的大小。
https://stackoverflow.com/questions/25031795
复制相似问题