بسمهتعالي Digital Image Processing Image Enhancement in the Frequency Domain (Chapter 4) H.R. Pourreza H.R. Pourreza Objective • Basic understanding of the frequency domain, Fourier series, and Fourier transform. • Image enhancement in the frequency domain. H.R. Pourreza Fourier Series Any function that periodically repeats itself can be expressed as the sum of sines and/or cosines of different frequencies, each multiplied by a different coefficients. This sum is called a Fourier series. H.R. Pourreza Fourier Series g (t ) a0 an cos nw0t bn sin nw0t n 1 1 a0 T0 2 an T0 2 bn T0 t 0 T0 g (t )dt t0 t 0 T0 g (t ) cosnw t dt 0 t0 t 0 T0 g (t ) sin nw t dt 0 t0 H.R. Pourreza Fourier Transform A function that is not periodic but the area under its curve is finite can be expressed as the integral of sines and/or cosines multiplied by a weighing function. The formulation in this case is Fourier transform. H.R. Pourreza Continuous One-Dimensional Fourier Transform and Its Inverse F (u ) f ( x )e j 2ux dx f ( x) F (u )e Where j 2ux j 1 du • (u) is the frequency variable. • F(u) is composed of an infinite sum of sine and cosine terms and… • Each value of u determines the frequency of its corresponding sine-cosine pair. H.R. Pourreza Continuous One-Dimensional Fourier Transform and Its Inverse Example Find the Fourier transform of a gate function (t) defined by 1 ( x) 0 1 x 2 1 x 2 u F (u ) sinc 2 u x - 0.5 0.5 H.R. Pourreza 2 4 Continuous One-Dimensional Fourier Transform and Its Inverse H.R. Pourreza Discrete One-Dimensional Fourier Transform and Its Inverse • A continuous function f(x) is discretized into a sequence: { f ( x0 ), f ( x0 x), f ( x0 2x),..., f ( x0 [ N 1]x)} by taking N or M samples x units apart. H.R. Pourreza Discrete One-Dimensional Fourier Transform and Its Inverse • Where x assumes the discrete values (0,1,2,3,…,M-1) then f ( x) f ( x0 xx) • The sequence {f(0),f(1),f(2),…f(M-1)} denotes any M uniformly spaced samples from a corresponding continuous function. H.R. Pourreza Discrete One-Dimensional Fourier Transform and Its Inverse 1 F (u ) M 1 F (u ) M f ( x) M 1 f ( x )e j 2u x M u =[0,1,2, …, M-1] x 0 M 1 x 0 x x f ( x) cos 2u j sin 2u M M M 1 u j 2 x F (u )e M u 0 x =[0,1,2, …, M-1] H.R. Pourreza Discrete One-Dimensional Fourier Transform and Its Inverse • The values u = 0, 1, 2, …, M-1 correspond to samples of the continuous transform at values 0, u, 2u, …, (M-1)u. i.e. F(u) represents F(uu), where: 1 u Mx • Each term of the FT (F(u) for every u) is composed of the sum of all values of f(x) H.R. Pourreza Discrete One-Dimensional Fourier Transform and Its Inverse • The Fourier transform of a real function is generally complex and we use polar coordinates: F (u ) R(u ) jI (u ) F (u ) F (u ) e j ( u ) F (u ) [ R 2 (u ) I 2 (u )]1/ 2 I (u ) (u ) tan R(u ) 1 H.R. Pourreza Discrete One-Dimensional Fourier Transform and Its Inverse |F(u)| (magnitude function) is the Fourier spectrum of f(x) and (u) its phase angle. • The square of the spectrum P (u ) F (u ) R 2 (u ) I 2 (u ) 2 is referred to as the Power Spectrum of f(x) (spectral density). H.R. Pourreza Discrete 2-Dimensional Fourier Transform • Fourier spectrum: F (u, v) R (u, v) I (u, v) • Phase: I (u, v) (u, v) tan R ( u , v ) • Power spectrum: 2 2 1/ 2 1 P(u , v) F (u , v) R 2 (u , v) I 2 (u , v) 2 H.R. Pourreza Discrete One-Dimensional Fourier Transform and Its Inverse H.R. Pourreza Time and Frequency Resolution and Sampling Fmax = 100 Hz What is the sampling rate (Nyquist)? What is the time resolution? What is the frequency resolution? What if the sampling rate is higher than the Nyquist sampling rate? What if we take samples for two seconds with the Nyquist sampling rate? H.R. Pourreza 1 second Discrete Two-Dimensional Fourier Transform and Its Inverse 1 F (u, v) MN f ( x, y ) M 1N 1 f ( x, y ) e F (u, v)e j 2 ( u v x y ) M N u 0 v 0 x y v ) M N x 0 y 0 M 1N 1 F (u, v) R (u, v) I (u, v) 2 j 2 (u 2 Fourier Spectrum H.R. Pourreza 1/ 2 Discrete Two-Dimensional Fourier Transform and Its Inverse 1 F (0,0) MN M 1N 1 f ( x, y ) x 0 y 0 F(0,0) is the average intensity of an image H.R. Pourreza Discrete Two-Dimensional Fourier Transform and Its Inverse Use Matlab to generate the above figures H.R. Pourreza Frequency Shifting Property of the Fourier Transform If g (t ) G ( ) then g (t )e j 0 t f ( x, y ) e G ( 0 ) j 2 ( u 0 x y v0 ) M N F (u u0 , v v0 ) H.R. Pourreza Frequency Shifting Property of the Fourier Transform H.R. Pourreza Basic Filtering in the Frequency Domain using Matlab function Normalized_DFT = Img_DFT(img) img=double(img); % So mathematical operations can be conducted on % the image pixels. [R,C]=size(img); for r = 1:R % To phase shift the image so the DFT will be for c=1:C % centered on the display monitor phased_img(r,c)=(img(r,c))*(-1)^((r-1)+(c-1)); end end fourier_img = fft2(phased_img); %Discrete Fourier Transform mag_fourier_img = abs(fourier_img ); % Magnitude of DFT Log_mag_fourier_img = log10(mag_fourier_img +1); Max = max(max(Log_mag_fourier_img )); Normalized_DFT = (Log_ mag_fourier_img )*(255/Max); imshow(uint8(Normalized_DFT)) H.R. Pourreza Basic Filtering in the Frequency Domain 1. 2. 3. 4. 5. 6. Multiply the input image by (-1)x+y to center the transform Compute F(u,v), the DFT of the image from (1) Multiply F(u,v) by a filter function H(u,v) Compute the inverse DFT of the result in (3) Obtain the real part of the result in (4) Multiply the result in (5) by (-1)x+y H.R. Pourreza Filtering out the DC Frequency Component H.R. Pourreza Filtering out the DC Frequency Component Notch Filter 0 H (u, v) 1 if (u, v) (M / 2, N / 2) otherwise H.R. Pourreza Low-pass and High-pass Filters Low Pass Filter attenuate high frequencies while “passing” low frequencies. High Pass Filter attenuate low frequencies while “passing” high frequencies. H.R. Pourreza Low-pass and High-pass Filters H.R. Pourreza Low-pass and High-pass Filters H.R. Pourreza Low-pass and High-pass Filters H.R. Pourreza Smoothing Frequency Domain, Ideal Lowpass Filters 1 H (u, v) 0 if D(u, v) D0 if D(u, v) D0 D(u, v) (u M / 2) (v N / 2) 2 H.R. Pourreza 2 1/ 2 Smoothing Frequency Domain, Ideal Lowpass Filters Total Power The remained percentage power after filtration PT M 1N 1 F (u, v) 2 u 0 v 0 100 F (u, v) / PT u v H.R. Pourreza Smoothing Frequency Domain, Ideal Lowpass Filters fc =5 = 92% fc =15 = 94.6% fc =30 = 96.4% fc =80 = 98% fc =230 = 99.5% H.R. Pourreza Cause of Ringing H.R. Pourreza Project #5, Ideal Low-pass Filter Implement in Matlab the Ideal low-pass filter in the following equation. 1 H (u, v) 0 if D(u, v) D0 if D(u, v) D0 D(u, v) (u M / 2) (v N / 2) 2 2 1/ 2 1. You must give the user the ability to specify the cutoff frequency D0 2. Calculate the The remained percentage power after filtration. 3. Display the image after filtration 4. Use Elaine image to test your program H.R. Pourreza Smoothing Frequency Domain, Butterworth Low-pass Filters H (u, v) 1 1 D(u, v) / D0 2n H.R. Pourreza Smoothing Frequency Domain, Butterworth Low-pass Filters Radii= 5 Butterworth Low-pass Filter: n=2 Radii= 15 Radii= 30 Radii= 230 Radii= 80 H.R. Pourreza Smoothing Frequency Domain, Butterworth Low-pass Filters H.R. Pourreza Smoothing Frequency Domain, Gaussian Low-pass Filters H (u, v) e D2 (u ,v ) / 2 D02 H.R. Pourreza Smoothing Frequency Domain, Gaussian Low-pass Filters Radii= 5 Gaussian Low-pass Radii= 15 Radii= 30 Radii= 230 Radii= 80 H.R. Pourreza Smoothing Frequency Domain, Gaussian Low-pass Filters H.R. Pourreza Smoothing Frequency Domain, Gaussian Low-pass Filters H.R. Pourreza Smoothing Frequency Domain, Gaussian Low-pass Filters H.R. Pourreza Sharpening Frequency Domain Filters Hhp(u,v) = 1 - Hlp(u,v) H.R. Pourreza Sharpening Frequency Domain Filters H.R. Pourreza Sharpening Frequency Domain, Ideal Highpass Filters 0 H (u, v) 1 if D(u, v) D0 if D(u, v) D0 H.R. Pourreza Sharpening Frequency Domain, Butterworth High-pass Filters H (u, v) 1 1 D0 / D(u, v) 2n H.R. Pourreza Sharpening Frequency Domain, Gaussian High-pass Filters H (u, v) 1 e D 2 (u ,v ) / 2 D02 H.R. Pourreza Homomorphic Filtering H.R. Pourreza Homomorphic Filtering H.R. Pourreza Convolution k(t) g(t) h(t) g(t) = k(t)*h(t) G(f) = K(f)H(f) * is a convolution operator and not multiplication 1 g ( t ) k ( t ) * h( t ) M h(t) M 1 k (t m)h(m) m 0 k(t) 3 2 1 1 t -1 H.R. Pourreza t 1 2 3 Convolution h(m) 1 g (0) M 1 m g(t) -1 k(-m) m H.R. Pourreza M 1 k (0 m)h(m) m 0 Convolution h(m) 1 g(t) m -1 k(1-m) m H.R. Pourreza Convolution h(m) 1 g(t) m -1 k(2-m) m H.R. Pourreza Convolution h(m) 1 g(t) m -1 k(3-m) m H.R. Pourreza Convolution h(m) 1 g(t) m -1 k(4-m) m H.R. Pourreza Convolution h(m) 1 g(t) m -1 k(5-m) m H.R. Pourreza Convolution h(m) 1 g(t) m -1 k(6-m) m H.R. Pourreza 2-Dimensions Convolution 1 f ( x, y) h( x, y) MN M 1 N 1 f (m, n)h( x m, y n) m 0 n 0 H.R. Pourreza Correlation k(t) h(t) g(t) 1 g ( t ) k ( t ) h( t ) M g(t) = k(t)h(t) G(f) = K(f)* . H(f) M 1 k (t m)h(m) m 0 k(t) g(t) h(t) 2 1 2 1 t t -1 H.R. Pourreza Correlation H.R. Pourreza Convolution H.R. Pourreza Convolution H.R. Pourreza Convolution H.R. Pourreza Convolution H.R. Pourreza