Digital image transforms Digital image processing 4. DIGITAL IMAGE TRANSFORMS 4.1. Introduction 4.2. Unitary orthogonal two-dimensional transforms Separable unitary transforms 4.3. Properties of the unitary transforms Energy conservation Energy compaction; the variance of coefficients De-correlation Basis functions and basis images 4.4. Sinusoidal transforms The 1-D discrete Fourier transform (1-D DFT) Properties of the 1-D DFT The 2-D discrete Fourier transform (2-D DFT) Properties of the 2-D DFT The discrete cosine transform (DCT) The discrete sine transform (DST) The Hartley transform 4.5. Rectangular transforms The Hadamard transform = the Walsh transform The Slant transform The Haar transform 4.6. Eigenvectors-based transforms The Karhunen-Loeve transform (KLT) The fast KLT The SVD 4.7. Image filtering in the transform domain 4.8. Conclusions Digital image transforms Digital image processing 4.1 INTRODUCTION Definition: Image transform = operation to change the default representation space of a digital image (spatial domain -> another domain) so that: (1) all the information present in the image is preserved in the transformed domain, but represented differently; (2) the transform is reversible, i.e., we can revert to the spatial domain Generally: in the transformed domain -> image information is represented in a more compact form => main goal of the transforms: image compression. Other usage: image analysis - a new type of representation of different types of information present in the image. Note: Most image transforms = “generalizations” of frequency transforms => the representation of the image by a DC component and several AC components. Definition: “original representation space” of the image U[M×N] = a MNdimensional space: - each coordinate of the space = a spatial location (m,n) in the digital image; - the value of the coordinate of U on an axis = the grey level in U in this spatial location (m,n). x1=(0,0); x2=(0,1); x3=(0,2); ... xMN=(M-1,N-1). => A unitary transform of the image U = a rotation of the MN-dimensional space, defined by a rotation matrix A in MN-dimensions. Digital image transforms Digital image processing 0 n N 1} ; A – unitary matrix, A1 A*T {u(n), v Au , or u A*T v N 1 v(k) a(k,n)u(n), 0 k N 1 n 0 N 1 * (4.1) or u(n) a (k,n)v(k), 0 n N 1 k 0 * (4.2) a*k {a (k, n) , 0 n N 1 } , 4.2 UNITARY ORTHOGONAL TWO-DIMENSIONAL TRANSFORMS N 1 N 1 v(k,l) ak,l (m,n) u(m,n), 0 k,l N 1 (4.3) m0 n 0 N 1 N 1 u(m,n) a*k,l (m,n) v(k,l), 0 k,l N 1 (4.4) k 0 l 0 orthonormality: completeness: N 1 N 1 * a k,l (m, n) a k ',l' (m, n) (k k' , l l' ) m 0 n 0 N 1 N 1 a k ,l ( m, n ) ak*,l ( m', n' ) ( m m', n n' ) (4.5) (4.6) k 0 l 0 P 1 Q 1 uP,Q (m,n) a*k,l (m,n) v(k,l), P N,Q N (4.7) k 0 l 0 N 1 N 1 2e [u(m,n) uP,Q (m,n)] 2 m 0 n 0 e2 0 if PQ N (4.8) Digital image transforms Digital image processing Unitary separable transforms ak ,l ( m, n) ak ( m) b1 ( n) a( k , m) b( l , n) (4.9) where {ak (m),k 0,...,N 1} and {b1(n),l 0,...,N 1} are the orthonormal sets of basis vectors. AA*T AT A* I, BB*T BTB* I N 1 N 1 v(k,l) a(k,m)u(m,n) a(n,l),or V AUAT m0 n 0 N 1N 1 u(m,n) a* (k,m) v(k,l) a* (l,n), or U A*TVA* n 0 l 0 (4.10) (4.11) (4.12) V A M UA N (4.13) *T U A*T M VA N (4.14) V AUA T , V T A[AU]T (4.15) Digital image transforms Digital image processing 4.3 PROPERTIES OF UNITARY TRANSFORMS Energy conservation N 1 N 1 v v(k) v v u A A u u u u( n ) u 2 2 *T *T *T 2 *T k 0 2 (4.16) n 0 N 1 u( m, n) 2 N 1 v( k , l ) m, n 0 2 (4.17) k ,l 0 Energy compaction and the variance of coefficients v E[v] E[Au] A E[u] A u (4.18) R v E[( v v )( v v )*T ] A( E[( u u )( u u )*T ])A*T A R u A*T 2v ( k ) [R v ]k ,k [AR u A*T ]k ,k W 1 (k ) v k 0 N 1 k 0 2 v 2 v A A u u ( n ) k 0 *T u *T (4.20) 2 (4.21) n 0 N 1 ( k ) Tr[AR u A *T ] Tr[R u ] 2u ( n ) E v( k ) N 1 N 1 *T v (4.19) (4.22) n 0 2 E u(n) N 1 n 0 2 (4.23) Digital image transforms Digital image processing Energy compaction and the variance of coefficients v ( k , l ) a( k , m) a( l , n) u ( m, n) m n (4.24) v2 (k , l ) E v(k , l ) v (k , l ) a(k , m)a(l, n) r (m, n; m' , n' ) a* (k , m' )a* (l, n' ) 2 m n m' n' (4.25) r( m, n; m', n' ) r1 ( m, m' ) r2 ( n, n' ) (4.26) 2v ( k , l ) 12 ( k ) 22 ( l ) AR1A *T AR A *T 2 k ,k l ,l where R1r1(m,m') and R2r2(n,n'). Decorrelation v 1 3 2 1 1 u, 3 1 where R u ,0 1 , 1 1 3 / 2 / 2 Rv / 2 1 3 / 2 v (0,1) E[v(0) v(1)] v (0) v (1) 2(1 3 2 1/ 2 ) 4 , A 1 1 1 2 1 1 Digital image transforms Digital image processing Basis functions and basis images KLT Haar Walsh Slant DCT Basis functions (basis vectors) Basis images (e.g.): DCT, Haar, …. Imagine originala V(1,1) V(9,9) = + Imagine originala V(1,5) V(1,3) = V(1,13) + + + + + + V(5,8) + V(3,5) V(3,1) V(2,9) V(5,6) V(5,2) V(5,1) + + V(1,9) + V(2,1) V(1,15) + + V(1,7) + V(16,15) … + Imagine aproximata Keeping only 50% of coefficients Digital image transforms Digital image processing 4.4 SINUSOIDAL TRANSFORMS The discrete Fourier transform (DFT) 1-D DFT of a sequence u(n), n0,..., N-1 is defined as: N 1 v(k) u(n) WNkn , k = 0,1,...N - 1 (4.28) n 0 where: 2 WN exp j N (4.29) The inverse DFT (IDFT): 1 N u(n) v(k) u(n) 1 N N 1 v(k)W kn N , n 0,1,...N 1 (4.30) k 0 1 N N 1 u(n) W kn N , k = 0,1,...N - 1 (4.31) n 0 N 1 v(k) W kn N , n 0,1,...N 1 (4.32) k 0 1 F WNkn , 0 k,n N 1 N (4.33) Digital image transforms Digital image processing DFT properties N 1 N 1 v* (N k) u* (n)WN( Nk)n u(n)WNkn v(k) n0 n0 N N N v k v* k , k 0,..., 1 2 2 2 (4.34) (4.35) N N v k v k 2 2 (4.36) v(0), Re v(k), k1,...,N/2 - 1, imv(k), k1,...,N/2 - 1, v(N/2) (4.37) (Conjugate symmetry – the DFT of a real sequence is conjugate symmetric about N/2). The 2-D DFT: N 1 N 1 v(k,l) u(m,n) WNkm WNln , 0 k,l N 1 (4.38) m0 n 0 u(m,n) 1 N2 v(k,l) N 1 N 1 W km N WN ln v(k,l), 0 m,n N 1 (4.39) k 0 l 0 1 N 1 N 1 km ln WN WN u(m, n) , 0 k,l N 1 N m0 n0 u(m,n) 1 N N 1 N 1 v(k,l) W k 0 l 0 km N WN ln v(k,l), 0 m,n N 1 (4.40) (4.41) Digital image transforms Digital image processing Properties of 2-D DFT Symmetry: F T F , F 1 F * Periodicity: v(k N, l N) v(k, l)k, l u( m N , n N ) u( m, n) m, n (4.42) (4.43) (4.44) The sampled Fourier spectrum: If u~(m,n) u(m,n),0 m,n N 1 si u~(m,n) 0 otherwise, =>: ~ 2k 2l U , DFT u( m, n ) v ( k , l ) N N (4.45) ~ where U ( w1 , w2 ) is the Fourier transform of u(m,n). Fast Fourier transform (FFT): since 2-D DFT is separable => equations (4.40) and (4.41) are equivalent to 2N 1-D DFTs; each of them can be computed in Nlog2N operations through FFT. => The total number of operations for 2-D DFT: N2log2N. Digital image transforms Digital image processing Properties of 2-D DFT (continued) Conjugate symmetry: the 2-D DFT and unitary 2-D DFT of a real image exhibit conjugate symmetry: N N N N N v k, l v* k, l , 0 k,l 1 2 2 2 2 2 or (4.46) v(k,l) v* (N k,N l), 0 k,l N 1 (4.47) l 1 (N/2 -1) N/2 N-1 0 k (N/2)-1 N/2 N-1 N/2 Fig. 4.2 The conjugate symmetry of the 2-D DFT coefficients Digital image processing Digital image transforms Digital image transforms Digital image processing The discrete Cosine transform (DCT) FDCT: N 1 N 1 (2m 1)k (2n 1)l v(k,l) (k) (l) u(m,n) cos cos 2N 2N m0 n 0 (4.47) where k, l 0, 1, ... N-1. IDCT: (2m 1)k (2n 1)l u(m,n) (k) (l) v(k,l) cos cos 2N 2N k=0 l=0 N 1 N 1 where m, n 0, (0) (4.48) ... N-1, and the coefficients are: 1 N and (k) 2 for 1 k N N V CuCT (2m 1)k ck,m (k) cos 2N (4.49) (4.50) (4.51) Digital image processing Digital image transforms Digital image transforms Digital image processing The discrete Sine transform (DST): 2 N 1 N 1 (m 1)(k 1) (n 1)(l 1) v(k,l) u(m,n) sin sin N 1 m0 n 0 N 1 N 1 u(m,n) 2 N 1 N 1 (m 1)(k 1) (n 1)(l 1) v(k,l) sin sin N 1 k 0 l 0 N 1 N 1 sm,k 2 (m 1)(k 1) sin N 1 N 1 (4.52) (4.53) (4.54) The Hartley transform: 1 v(k,l) N u( m, n ) N 1 N 1 2 2 u(m,n)cas N (mk nl) (4.55) m 0 n 0 1 N N 1 N 1 v(k,l)cas N (mk nl) (4.56) k 0 l 0 cas( ) cos( ) sin( ) 2cos( / 4) hm,k 1 N mk cas 2 N (4.57) (4.58) Digital image transforms Digital image processing 4.5 RECTANGULAR TRANSFORMS The Hadamard transform Walsh-Hadamard transform) H2 HN 1 1 1 1 1 H8 2 21 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 7 1 3 1 4 1 1 1 6 1 2 1 5 (4. 61) (= the Walsh 1 1 1 2 1 1 1 H N / 2 2 H N / 2 H 8,ord transform; the (4.59) HN / 2 H N / 2 1 1 1 1 1 2 21 1 1 1 1 1 1 1 -1 1 -1 1 (4.60) 1 1 1 1 -1 -1 1 1 1 1 1 -1 1 1 1 -1 1 -1 -1 1 1 1 1 1 1 1 -1 1 1 1 1 -1 1 1 1 1 1 1 -1 1 1 0 1 1 1 2 - 1 3 1 4 - 1 5 1 6 1 7 (4. 62) Digital image processing Basis vectors for the Walsh-Hadamard transform Digital image transforms Digital image transforms Digital image processing Original image Ordered Hadamard Non-ordered Hadamard Digital image transforms Digital image processing The Slant transform S2 1 0 a b n n 1 0 Sn 0 1 2 bn an 0 1 0 1 2 0 I n -1 (4.63) 0 S n 1 0 I n -1 0 I n -1 0 S n 1 0 an bn 0 0 1 bn an 0 I n -1 1 1 1 1 3N 2 N2 1 and b n 1 4N 2 1 4N 2 1 an1 (4.64) (4.65) The Haar transform (4.66) k 2p q 1 h0 (x) x i / N, 1 N q 1 q 1/2 p/2 2 , if 2 p x 2 p 1 q 1/2 q p/2 hk (x) x p 2 , if p 2 2 N 0, otherwise and (4.67) i=0,1,...,N-1 Hr 1 8 1 1 1 1 1 1 1 1 2 1 2 1 2 1 2 1 0 1 0 1 0 0 2 0 0 0 0 2 0 0 0 0 0 2 0 0 0 0 2 0 0 2 0 0 2 0 2 0 0 2 0 2 0 0 0 2 1 1 0 2 0 0 0 2 0 1 2 2 2 2 2 2 (4.68) Digital image processing Digital image transforms Digital image transforms Digital image processing Applying the Haar transform at block level (e.g. 2×2 pixels blocks => Hr[2×2]): Block transform: Rearrange coefficients: Applying the Haar transform at block level for a 4×4 pixels blocks => Hr[4×4]: Block transform: Rearrange coefficients: Digital image transforms Digital image processing 4.6 EIGENVECTOR BASED TRANSFORMS A k 0 (4.69) Av k k v k (4.70) mx 1 L xl L l 1 C x E ( x m x )( x m x )T (4.71) 1 L x l x tl m x m tx L l 1 (4.72) y A (x m x ) (4.73) Cy ACx AT (4.74) 1 Cy 0 0 N x A 1 y m x A T y m x (4.76) ~ y Bx (4.77) ~ x BT ~ y 2e (4.75) N k M 1 k (4.78) (4.79) Digital image transforms Digital image processing The Karhunen – Loeve transform (KLT = PCA) The fast KLT The SVD transform (singular values decomposition) A U VT (4.80) U T AV 0 1 A 2 1 0 1 3 4 3 2 4 5 4 1 3 4 3 1 2 1 0 1 2 1 0 6 14 AA T 18 14 6 0,186 0,638 0,476 0,058 U 0,691 0,422 0,476 0,058 0,186 0,638 0 0 0 12,58 0 1,142 0 0 T 0 0,557 0 U AU 0 0 0 0 0 0 0 0 0 (4.81) 0 0 0 0 0 14 36 48 36 18 48 65 48 14 18 14 6 36 14 48 18 36 14 14 6 147,07 1,872 ; 0,058 0 0 0,241 0,695 0,695 0,52 0,133 0,128 0,587 0 0 0,52 0,133 0,128 0,241 0,695 0,695 A U UT 0 1 2 1 0 1 3 4 3 2 4 6 4 1 3 4 3 1 2 1 0 1 2 1 0 KLT (PCA) Eigenimages – examples: Facial image set Corresponding “eigenfaces” 3 eigenimages and the individual variations on those components Face aproximation, from rough to detailed, as more coefficients are added Digital image transforms Digital image processing 4.7 FILTERING IN THE TRANSFORM DOMAIN 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 2 0 0 0 0 0 0 0 2,83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Im age 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Its Haar transform DFT Original image = (white square, grey background) + aditive noise DFT = sinc 2-D for the square + cst. (for noise) LPF 2-D IDFT The 2-D spectrum of the image and the filters applied: Noisy image; periodic noise as vertical lines In the regions corresponding to the vertical lines frequencies Image restoration through filtering Digital image transforms Digital image processing 4.8 CONCLUSIONS DFT - Fast transform; very useful in digital signal processing, convolution, filtering, image analysis - Good energy compaction; however – requires complex computations DCT - Fast transform and requires only real number operations - The optimal alternative to the KLT for highly correlated images - Used in compression and image restoration by Wiener filtering - Excellent energy compaction Hadamard - Faster than sinusoidal transforms since it only implies sums and subtractions - Used for hardware implementation of some digital image processing algorithms - Applied in image compression, filtering, coding - Good energy compaction Haar - Very fast transform - Useful for feature extraction (like horizontal or vertical lines), image coding, image analysis - Average energy compaction performance KLT - Optimal transform as: energy compaction; decorrelation - Does not have a fast algorithm - Generally used for small sized vectors and to evaluate the performances of other transforms, but also for image analysis and recognition (PCA)