• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-15
  • 语言: Matlab
  • 标签: matlab  

资源简介

本代码适用于图像处理的学习,对数字图像进行DFT,DHT,DCT等变换,比较各自的特点。

资源截图

代码片段和文件信息

I = imread(‘lena512.bmp‘);
I=double(I);
pt=0.95;
%% DFT
tic;
F=fftshift(fft2(I));
clock1=toc;
m_fft=10*log(1+abs(F));
Threshold=findthreshold(m_fftpt);
F_re=F.*(m_fft>Threshold);
tic;
I_re_dft = ifft2(ifftshift(F_re));
clock2=toc;

figure
subplot(131);
imshow(I []) title(‘原图‘);
subplot(132);
imshow(m_fft []) title(‘DFT幅度谱‘);
subplot(133);
imshow(I_re_dft []) title(‘DFT复原图‘);

PSNR=PSNR_value(II_re_dft);
str=[‘DFT变换  PSNR=‘num2str(PSNR)];
suptitle(str);
fprintf(‘PSNR_DFT=%0.3f dB\n‘ PSNR); 
fprintf(‘ DFT耗时 %0.3f s\n‘ clock2+clock1);

%% DCT
tic;
C=dct2(I);
clock1=toc; 
m_dct=10*log(1+abs(C));
Threshold=findthreshold(m_dctpt);
C_re=C.*(m_dct>Threshold);
tic; 
I_re_dct=idct2(C_re);
clock2=toc;

figure
subplot(131);
imshow(I []) title(‘原图‘);
subplot(132);
imshow(m_dct [

评论

共有 条评论