MATLAB中的二维逆余弦变换

MATLAB中的二维逆余弦变换

二维反余弦变换用于将图像解码到空间域,这是一种更适合压缩的数据表示方法(ICT)。基于ICT的解码是图像和视频解压标准的基础。或者,换一种说法,我们可以说,反余弦变换(ICT)将不同频率和大小的正弦波相加来表示一个图像。ict2函数用于确定图像的二维反余弦变换(ICT)。ict2函数计算一个图像的二维反余弦变换(ICT)。ICT的特点是,典型图像中大部分具有视觉意义的信息都集中在ICT的几个系数中。

语法

Y = ict2(X)   
Y = ict2(X,m,n)   
Y = ict2(X,[m n]) 

Y = ict2(X)返回X的两层反向余弦变换(ICT)。在应用反向变换之前,Y = ict2(X,u,v)和Y = ict2(X,[u v])用大小为u乘v的0填充X。

示例 1:

% MATLAB code for 
% 2-D INVERSE COSINE TRANSFORM
% PLAN THE MATRIX IN ADVANCE
X = zeros(size(Y));
Temp = zeros(size(Y));
[U V] = size(Y);
a = 1:U;
a = repmat(a',1,V);
b = repmat(1:U,V,1);
figure,
imshow(log(abs(Y)),[]);
colormap(jet);
  
title('After DCT');
for i=1:U
for j = 1: V
if(i==1)
  
AlphaO=sqrt(1/U);
else
AlphaO=sqrt(2/U);
end
  
if(j==1)
AlphaQ=sqrt(1/V);
else
AlphaQ=sqrt(2/V);
end
  
CS1=cos((pi*(2*x-1)*(i-1))/(2*U));
CS2=cos((pi*(2*y-1)*(j-1))/(2*V));
Temp=Y.*cs1.*cs2*AlphaO*AlphaQ;
X(i,j)=sum(sum(Temp));
end
end
 
% OUTPUT
figure,
imshow(abs(X),[0 300]);
title('Image after IDCT');

输出:

MATLAB中的二维逆余弦变换

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程