[iadct] [Up] [iadft] Image Transformation

iadctmatrix
Kernel matrix for the DCT Transform.

Synopsis

A = iadctmatrix( N )

Implemented in Python.

Input

N Double. Non-negative integer.

Output

A Image. Gray-scale (uint8 or uint16) or binary image (logical).

Examples

Visualization of the Dct matrix
>>> A = iadctmatrix(128)

              
>>> iashow(A)
(128, 128) Min= -0.12499058773 Max= 0.12499058773 Mean=0.001 Std=0.09
A
Dct matrix is a unitary matrix
>>> import Numeric

              
>>> A = iadctmatrix(4)

              
>>> print Numeric.array2string(A, precision=4, suppress_small=1)
[[ 0.5     0.5     0.5     0.5   ]
 [ 0.6533  0.2706 -0.2706 -0.6533]
 [ 0.5    -0.5    -0.5     0.5   ]
 [ 0.2706 -0.6533  0.6533 -0.2706]]
>>> B = Numeric.matrixmultiply(A,Numeric.transpose(A)) 

              
>>> print Numeric.array2string(B, precision=4, suppress_small=1)
[[ 1.  0. -0. -0.]
 [ 0.  1.  0.  0.]
 [-0.  0.  1.  0.]
 [-0.  0.  0.  1.]]

Source Code

def iadctmatrix(N):
    from Numeric import ones, sqrt, cos, pi
    x, u = iameshgrid(range(N), range(N)) # (u,x)
    alpha = ones((N,N)) * sqrt(2./N)
    alpha[0,:] = sqrt(1./N) # alpha(u,x)
    A = alpha * cos((2*x+1)*u*pi / (2.*N)) # Cn(u,x)
    return A
    
[iadct] [Up] [iadft] http://www.python.org