matlab进行二维DCT变换和二维DCT反变换

来源:百度知道 编辑:UC知道 时间:2024/06/17 07:18:59
在Matlab中,函数dct2 和函数idct2分别用于进行二维DCT变换和二维DCT反变换。下面以处理本次训练图像为例说明该余弦正反变换在Matlab中的实现。其程序清单如下:
C=dct2(A); %进行余弦变换
figure;
imshow(log(abs(C)),[ ]);
colormap(jet(64)); %显示为64级灰度
colorbar; %显示颜色条,显示变换后的系数分布
C(abs(C)<10)=0; %将DCT变换后的系数值小于10的元素设为0
D=idct2(C)/255; %对DCT变换值归一化,进行余弦反变换
figure;
imshow(D) ; %显示余弦反变换恢复图像

高手帮忙看看哪里错了?万分感激,。~!,,。

%修改后的程序如下,其中pout.tif是某一图像
%注意,你第四行的分号用了中文的,要改过来
A=imread('pout.tif');
imshow(A)
C=dct2(A); %进行余弦变换
figure;
B=log(abs(C));
imshow(B)
colormap(jet(64)); %显示为64级灰度
colorbar; %显示颜色条,显示变换后的系数分布
C(abs(C)<10)=0; %将DCT变换后的系数值小于10的元素设为0
D=idct2(C)./255; %对DCT变换值归一化,进行余弦反变换
figure;
imshow(D) ;