240-373 Image Processing Montri Karnjanadecha montri@coe.psu.ac.th http://fivedots.coe.psu.ac.th/~montri 240-373: Chapter 14: The Frequency Domain 1 Chapter 14 The Frequency Domain 240-373: Chapter 14: The Frequency Domain 2 The Frequency Domain • Any wave shape can be approximated by a sum of periodic (such as sine and cosine) functions. • a--amplitude of waveform • f-- frequency (number of times the wave repeats itself in a given length) • p--phase (position that the wave starts) • Usually phase is ignored in image processing 240-373: Chapter 14: The Frequency Domain 3 240-373: Chapter 14: The Frequency Domain 4 240-373: Chapter 14: The Frequency Domain 5 The Hartley Transform • Discrete Hartley Transform (DHT) – The M x N image is converted into a second image (also M x N) – M and N should be power of 2 (e.g. .., 128, 256, 512, etc.) – The basic transform depends on calculating the following for each pixel in the new M x N array 1 M 1 N 1 ux vy ux vy H (u, v) f ( x, y) cos(2 ) sin(2 ) MN x0 y 0 M N M N 240-373: Chapter 14: The Frequency Domain 6 The Hartley Transform where f(x,y) is the intensity of the pixel at position (x,y) H(u,v) is the value of element in frequency domain – The results are periodic – The cosine+sine (CAS) term is call “the kernel of the transformation” (or ”basis function”) 240-373: Chapter 14: The Frequency Domain 7 The Hartley Transform • Fast Hartley Transform (FHT) – M and N must be power of 2 – Much faster than DHT – Equation: H (u, v) T (u, v) T (M u, v) T (u, N v) T (M u, N v)/ 2 240-373: Chapter 14: The Frequency Domain 8 The Fourier Transform • The Fourier transform – Each element has real and imaginary values – Formula: F (u , v) f ( x, y )e 2 i ( ux vy ) dxdy – f(x,y) is point (x,y) in the original image and F(u,v) is the point (u,v) in the frequency image 240-373: Chapter 14: The Frequency Domain 9 The Fourier Transform • Discrete Fourier Transform (DFT) 1 F (u, v) MN – Imaginary part M 1 N 1 f ( x, y)e ux vy 2 i M N x 0 y 0 1 M 1 N 1 ux vy Fi (u, v) f ( x, y) sin 2 MN x0 y 0 M N – Real part 1 M 1 N 1 ux vy Fr (u, v) f ( x , y ) cos 2 MN x0 y 0 M N – The actual complex result is Fi(u,v) + Fr(u,v) 240-373: Chapter 14: The Frequency Domain 10 Fourier Power Spectrum and Inverse Fourier Transform • Fourier power spectrum F (u, v) Fr (u, v) Fi (u, v) 2 2 • Inverse Fourier Transform 1 f ( x, y) MN 240-373: Chapter 14: The Frequency Domain M 1 N 1 F (u, v)e ux vy 2 i M N x 0 y 0 11 Fourier Power Spectrum and Inverse Fourier Transform • Fast Fourier Transform (FFT) – Much faster than DFT – M and N must be power of 2 – Computation is reduced from M2N2 to MN log2 M . log2 N (~1/1000 times) 240-373: Chapter 14: The Frequency Domain 12 Fourier Power Spectrum and Inverse Fourier Transform • Optical transformation – A common approach to view image in frequency domain A D B C Original image 240-373: Chapter 14: The Frequency Domain C B D A Transformed image 13 Power and Autocorrelation Functions • Power function: 1 P(u , v) F (u , v) H (u, v) 2 H (u,v) 2 2 • Autocorrelation function 2 – Inverse Fourier transform of F (u , v ) or – Hartley transform of 1 H (u , v) 2 H (u ,v) 2 2 240-373: Chapter 14: The Frequency Domain 14 Hartley vs Fourier Transform 240-373: Chapter 14: The Frequency Domain 15 Interpretation of the power function 240-373: Chapter 14: The Frequency Domain 16 Applications of Frequency Domain Processing • Convolution in the frequency domain 240-373: Chapter 14: The Frequency Domain 17 Applications of Frequency Domain Processing – useful when the image is larger than 1024x1024 and the template size is greater than 16x16 – Template and image must be the same size 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 240-373: Chapter 14: The Frequency Domain 18 – Use FHT or FFT instead of DHT or DFT – Number of points should be kept small – The transform is periodic • zeros must be padded to the image and the template • minimum image size must be (N+n-1) x (M+m-1) 240-373: Chapter 14: The Frequency Domain 19 0 1 2 0 4 5 6 0 8 9 10 0 0 0 0 0 240-373: Chapter 14: The Frequency Domain 1 2 0 0 45 58 44 12 7 3 0 0 97 110 76 32 0 0 0 0 26 29 10 16 0 0 0 0 3 13 14 0 20 – Convolution in frequency domain is “real convolution” Normal convolution 0 1 2 0 4 5 6 0 8 9 10 0 0 0 0 1 2 0 0 0 45 58 44 12 7 3 0 0 97 110 76 32 0 0 0 0 26 29 10 16 0 0 0 0 3 13 14 0 1 4 0 Real convolution 0 1 2 0 4 5 6 0 8 9 10 0 0 0 0 0 0 0 0 4 0 0 0 0 4 20 33 18 0 0 3 7 36 72 85 38 0 240-373: Chapter 14: The Frequency Domain 0 0 2 1 56 87 97 30 21 Convolution using the Fourier transform Technique 1: Convolution using the Fourier transform USE: To perform a convolution OPERATION: – zero-padding both the image (MxN) and the template (m x n) to the size (N+n-1) x (M+m-1) – Applying FFT to the modified image and template – Multiplying element by element of the transformed image against the transformed template 240-373: Chapter 14: The Frequency Domain 22 Convolution using the Fourier transform OPERATION: (cont’d) – Multiplication is done as follows: F(image) (r1,i1) F(template) (r2, i2) F(result) (r1r2 - i1i2, r1i2+r2i1) i.e. 4 real multiplications and 2 additions – Performing Inverse Fourier transform 240-373: Chapter 14: The Frequency Domain 23 Hartley convolution Technique 2: Hartley convolution USE: To perform a convolution OPERATION: – zero-padding both the image (MxN) and the template (m x n) to the size (N+n-1) x (M+m-1) image 0 1 2 template 0 1 2 0 0 4 5 6 0 8 9 10 0 7 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240-373: Chapter 14: The Frequency Domain 24 Hartley convolution – Applying Hartley transform to the modified image and template image 11.25 2.25 3.75 template 5.25 3.25 3.25 0.75 0.75 2.25 3.75 0.75 2.75 3.75 0.75 1.25 1.75 3.25 1.75 0.75 2.25 - 1.75 - 1.75 - 1.25 - 1.25 9.75 0.25 3.25 1.25 - 1.75 - 0.25 - 1.25 - 2.75 240-373: Chapter 14: The Frequency Domain 25 Hartley convolution – Multiplying them by evaluating: I (u, v)T (u, v) I (u, v)T ( N u, M v) NM R(u, v) I ( N u , M v ) T ( u , v ) 2 I ( N u, M v)T ( N u, M v) 240-373: Chapter 14: The Frequency Domain 26 Hartley convolution: Cont’d Giving: 585 33 213 45 417 75 49 105 11 25 39 45 27 125 59 25 – Performing Inverse Hartley transform, gives: 0 1 4 4 4 20 33 18 36 72 85 38 56 87 97 30 240-373: Chapter 14: The Frequency Domain 27 Hartley convolution: Cont’d 240-373: Chapter 14: The Frequency Domain 28 Deconvolution • Convolution R = I * T • Deconvolution I = R *-1 T • Deconvolution of R by T = convolution of R • by some ‘inverse’ of the template T (T’) 240-373: Chapter 14: The Frequency Domain 29 Deconvolution • Consider periodic convolution as a matrix operation. For example 1 2 3 4 5 6 7 8 9 * 1 1 0 1 1 0 0 0 0 240-373: Chapter 14: The Frequency Domain 12 16 14 24 28 26 18 22 20 30 Deconvolution is equivalent to A 1 1 0 1 (1 2 3 4 5 6 7 8 9) 1 0 0 0 0 B C 0 1 0 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 1 0 1 1 0 1 0 0 0 1 0 1 1 0 0 0 0 12 16 14 24 28 26 18 22 20 1 1 0 1 1 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 1 1 240-373: Chapter 14: The Frequency Domain AB =C ABB-1 = CB-1 A = CB-1 31