dct2只能计算二维矩阵的二维dct变换而I=imread('D:\Buliding.tif');读取的I是rgb三维矩阵I=im2double(I);之后I还是三维矩阵如果要处理rgb图像,那么只能分开三个颜色来处理如果只是处理灰度图像的画,你应该将元图像先化为灰度图像再处理I=imread('D:\Buliding.tif');I=rgb2gray(I);