1 Chapter 4: Frequency Domain Processing Image Transformations IUST.

Slides:



Advertisements
Similar presentations
Ch.4 Fourier Analysis of Discrete-Time Signals
Advertisements

Chapter 3 Image Enhancement in the Spatial Domain.
Fourier Transform (Chapter 4)
1 Chapter 16 Fourier Analysis with MATLAB Fourier analysis is the process of representing a function in terms of sinusoidal components. It is widely employed.
Digital Image Processing
Reminder Fourier Basis: t  [0,1] nZnZ Fourier Series: Fourier Coefficient:
Chapter 4 Image Enhancement in the Frequency Domain.
Digital Image Processing Chapter 4: Image Enhancement in the Frequency Domain.
Image Enhancement in the Frequency Domain Part I Image Enhancement in the Frequency Domain Part I Dr. Samir H. Abdul-Jauwad Electrical Engineering Department.
Digital Image Processing, 2nd ed. www. imageprocessingbook.com © 2001 R. C. Gonzalez & R. E. Woods 1 Objective To provide background material in support.
Some Properties of the 2-D Fourier Transform Translation Distributivity and Scaling Rotation Periodicity and Conjugate Symmetry Separability Convolution.
Digital Image Processing Chapter 4: Image Enhancement in the Frequency Domain.
Chapter 4 Image Enhancement in the Frequency Domain.
Digital Image Processing Final Project Compression Using DFT, DCT, Hadamard and SVD Transforms Zvi Devir and Assaf Eden.
Transforms: Basis to Basis Normal Basis Hadamard Basis Basis functions Method to find coefficients (“Transform”) Inverse Transform.
Orthogonal Transforms
Fourier Transform 2D Discrete Fourier Transform - 2D
Digital Image Processing, 2nd ed. © 2002 R. C. Gonzalez & R. E. Woods Chapter 4 Image Enhancement in the Frequency Domain Chapter.
CHAPTER 8 Fourier Filters IMAGE ANALYSIS A. Dermanis.
G52IIP, School of Computer Science, University of Nottingham 1 Image Transforms Fourier Transform Basic idea.
Topic 7 - Fourier Transforms DIGITAL IMAGE PROCESSING Course 3624 Department of Physics and Astronomy Professor Bob Warwick.
DTFT And Fourier Transform
1 Chapter 8 The Discrete Fourier Transform 2 Introduction  In Chapters 2 and 3 we discussed the representation of sequences and LTI systems in terms.
Motivation Music as a combination of sounds at different frequencies
Fourier Series Summary (From Salivahanan et al, 2002)
Digital Image Processing Chapter # 4 Image Enhancement in Frequency Domain Digital Image Processing Chapter # 4 Image Enhancement in Frequency Domain.
CS654: Digital Image Analysis Lecture 15: Image Transforms with Real Basis Functions.
Transforms. 5*sin (2  4t) Amplitude = 5 Frequency = 4 Hz seconds A sine wave.
Chapter 4: Image Enhancement in the Frequency Domain Chapter 4: Image Enhancement in the Frequency Domain.
Image Processing © 2002 R. C. Gonzalez & R. E. Woods Lecture 4 Image Enhancement in the Frequency Domain Lecture 4 Image Enhancement.
Image Enhancement in the Frequency Domain Spring 2006, Jen-Chang Liu.
1 Chapter 5 Image Transforms. 2 Image Processing for Pattern Recognition Feature Extraction Acquisition Preprocessing Classification Post Processing Scaling.
Chapter 7: The Fourier Transform 7.1 Introduction
September 5, 2013Computer Vision Lecture 2: Digital Images 1 Computer Vision A simple two-stage model of computer vision: Image processing Scene analysis.
1 © 2010 Cengage Learning Engineering. All Rights Reserved. 1 Introduction to Digital Image Processing with MATLAB ® Asia Edition McAndrew ‧ Wang ‧ Tseng.
Digital Image Processing Chapter 4 Image Enhancement in the Frequency Domain Part I.
Digital Image Processing, 2nd ed. © 2002 R. C. Gonzalez & R. E. Woods Background Any function that periodically repeats itself.
Zhongguo Liu_Biomedical Engineering_Shandong Univ. Chapter 8 The Discrete Fourier Transform Zhongguo Liu Biomedical Engineering School of Control.
Fast Fourier Transform & Assignment 2
7- 1 Chapter 7: Fourier Analysis Fourier analysis = Series + Transform ◎ Fourier Series -- A periodic (T) function f(x) can be written as the sum of sines.
Dr. Scott Umbaugh, SIUE Discrete Transforms.
Lecture 7 Transformations in frequency domain 1.Basic steps in frequency domain transformation 2.Fourier transformation theory in 1-D.
CS654: Digital Image Analysis
2D Sampling Goal: Represent a 2D function by a finite set of points.
Fourier Transform.
DTFT continue (c.f. Shenoi, 2006)  We have introduced DTFT and showed some of its properties. We will investigate them in more detail by showing the associated.
Computer Graphics & Image Processing Chapter # 4 Image Enhancement in Frequency Domain 2/26/20161.
Digital Image Processing, 2nd ed. www. imageprocessingbook.com © 2001 R. C. Gonzalez & R. E. Woods 1 Review: Linear Systems Some Definitions With reference.
Chapter 13 Discrete Image Transforms
BYST Xform-1 DIP - WS2002: Fourier Transform Digital Image Processing Bundit Thipakorn, Ph.D. Computer Engineering Department Fourier Transform and Image.
The Frequency Domain Digital Image Processing – Chapter 8.
Fourier transform.
The Fourier Transform.
Digital Image Processing Lecture 8: Image Enhancement in Frequency Domain II Naveed Ejaz.
Fourier Transform (Chapter 4) CS474/674 – Prof. Bebis.
Digital Image Processing Lecture 8: Fourier Transform Prof. Charlene Tsai.
Image Transformation Spatial domain (SD) and Frequency domain (FD)
Chapter 4 Discrete-Time Signals and transform
Integral Transform Method
DIGITAL SIGNAL PROCESSING ELECTRONICS
Image Enhancement in the
Frequency Domain Processing
Digital Image Procesing Discrete Walsh Trasform (DWT) in Image Processing Discrete Hadamard Trasform (DHT) in Image Processing DR TANIA STATHAKI READER.
4.1 DFT In practice the Fourier components of data are obtained by digital computation rather than by analog processing. The analog values have to be.
4. DIGITAL IMAGE TRANSFORMS 4.1. Introduction
Chapter 8 The Discrete Fourier Transform
Chapter 8 The Discrete Fourier Transform
Chapter 8 The Discrete Fourier Transform
Linear Systems Review Objective
پردازش تصاویر دیجیتالی
Presentation transcript:

1 Chapter 4: Frequency Domain Processing Image Transformations IUST

2 Contents Fourier Transform and DFT Walsh Transform Hadamard Transform Walsh-Hadamard Transform (WHT) Discrete Cosine Transform (DCT) Haar Transform Slant Transform Comparison of various Transforms

3 Introduction Although we discuss other transforms in some detail in this chapter, we emphasize the Fourier transform because of its wide range of applications in image processing problems.

4 Fourier Transform (1-D)

5 Fourier Transform (2-D)

6 Discrete Fourier Transform In the two-variable case the discrete Fourier transform pair is

7 Discrete Fourier Transform When images are sampled in a squared array, i.e. M=N, we can write

8 Discrete Fourier Transform Examples At all of these examples, the Fourier spectrum is shifted from top left corner to the center of the frequency square.

9 Discrete Fourier Transform Examples At all of these examples, the Fourier spectrum is shifted from top left corner to the center of the frequency square.

10 Discrete Fourier Transform Display At all of these examples, the Fourier spectrum is shifted from top left corner to the center of the frequency square.

11 Discrete Fourier Transform Example Main Image (Gray Level)DFT of Main image (Fourier spectrum) Logarithmic scaled of the Fourier spectrum

12 Discrete Fourier Transform % Program written in Matlab for computing FFT of a given gray color image. % Clear the memory. clear; % Getting the name and extension of the image file from the user. name=input('Please write the name and address of the image : ','s'); % Reading the image file into variable 'a'. a=imread(name); % Computing the size of image. Assuming that image is squared. N=length(a); % Computing DFT of the image file by using fast Fourier algorithm. F=fft2(double(a))/N; MATLAB program page 1 from 3.

13 Discrete Fourier Transform % Shifting the Fourier spectrum to the center of the frequency square. for i=1:N/2; for j=1:N/2 G(i+N/2,j+N/2)=F(i,j); end;end for i=N/2+1:N; for j=1:N/2 G(i-N/2,j+N/2)=F(i,j); end;end for i=1:N/2; for j=N/2+1:N G(i+N/2,j-N/2)=F(i,j); end;end for i=N/2+1:N; for j=N/2+1:N G(i-N/2,j-N/2)=F(i,j); end;end MATLAB program page 2 from 3.

14 Discrete Fourier Transform % Computing and scaling the logarithmic Fourier spectrum. H=log(1+abs(G)); for i=1:N H(i,:)=H(i,:)*255/abs(max(H(i,:))); end % Changing the color map to gray scale (8 bits). colormap(gray(255)); % Showing the main image and its Fourier spectrum. subplot(2,2,1),image(a),title('Main image'); subplot(2,2,2),image(abs(G)),title('Fourier spectrum'); subplot(2,2,3),image(H),title('Logarithmic scaled Fourier spectrum'); MATLAB program page 3 from 3.

15 Discrete Fourier Transform (Properties) Separability The discrete Fourier transform pair can be expressed in the seperable forms:

16 Discrete Fourier Transform (Properties) Translation The translation properties of the Fourier transform pair are :

17 Discrete Fourier Transform (Properties) Periodicity The discrete Fourier transform and its inverse are periodic with period N; that is, F(u,v)=F(u+N,v)=F(u,v+N)=F(u+N,v+N) If f(x,y) is real, the Fourier transform also exhibits conjugate symmetry: F(u,v)=F * (-u,-v) Or, more interestingly: |F(u,v)|=|F(-u,-v)|

18 Discrete Fourier Transform (Properties) Rotation If we introduce the polar coordinates Then we can write: In other words, rotating F(u,v) rotates f(x,y) by the same angle.

19 Discrete Fourier Transform (Properties) Convolution The convolution theorem in two dimensions is expressed by the relations : Note :

20 Discrete Fourier Transform (Properties) Correlation The correlation of two continuous functions f(x) and g(x) is defined by the relation So we can write:

21 Discrete Fourier Transform Sampling (Properties) 1-D The Fourier transform and the convolution theorem provide the tools for a deeper analytic study of sampling problem. In particular, we want to look at the question of how many samples should be taken so that no information is lost in the sampling process. Expressed differently, the problem is one of the establishing the sampling conditions under which a continuous image can be recovered fully from a set of sampled values. We begin the analysis with the 1-D case. As a result, a function which is band-limited in frequency domain must extend from negative infinity to positive infinity in time domain (or x domain).

22 Discrete Fourier Transform Sampling (Properties) 1-D f(x) : a given function F(u): Fourier Transform of f(x) which is band-limited s(x) : sampling function S(u): Fourier Transform of s(x) G(u): window for recovery of the main function F(u) and f(x). Recovered f(x) from sampled data

23 Discrete Fourier Transform Sampling (Properties) 1-D f(x) : a given function F(u): Fourier Transform of f(x) which is band-limited s(x) : sampling function S(u): Fourier Transform of s(x) h(x): window for making f(x) finited in time. H(u): Fourier Transform of h(x)

24 Discrete Fourier Transform Sampling (Properties) 1-D s(x)*f(x) (convolution function) is periodic, with period 1/Δu. If N samples of f(x) and F(u) are taken and the spacings between samples are selected so that a period in each domain is covered by N uniformly spaced samples, then NΔx=X in the x domain and NΔu=1/Δx in the frequency domain.

25 Discrete Fourier Transform Sampling (Properties) 2-D The sampling process for 2-D functions can be formulated mathematically by making use of the 2-D impulse function δ(x,y), which is defined as A 2-D sampling function is consisted of a train of impulses separated Δx units in the x direction and Δy units in the y direction as shown in the figure.

26 Discrete Fourier Transform Sampling (Properties) 2-D If f(x,y) is band limited (that is, its Fourier transform vanishes outside some finite region R) the result of covolving S(u,v) and F(u,v) might look like the case in the case shown in the figure. The function shown is periodic in two dimensions. (u,v) inside one of the rectangles enclosing R elsewhere The inverse Fourier transform of G(u,v)[S(u,v)*F(u,v)] yields f(x,y).

27 The Fast Fourier Transform (FFT) Algorithm

28 Other Seperable Image Transforms For 2-D square arrays the forward and inverse transforms are g(x,y,u,v) : forward transformation kernel h(x,y,u,v) : inverse transformation kernel The forward kernel is said to be seperable if g(x,y,u,v)=g 1 (x,u)g 2 (y,v) In addition, the kernel is symmetric if g 1 is functionally equal to g 2. In this case we can write: g(x,y,u,v)=g 1 (x,u)g 1 (y,v)

29 Other Seperable Image Transforms Where F is the N×N image matrix, A is an N×N symmetric transformation matrix T is the resulting N×N transform. If the kernel g(x,y,u,v) is seperable and symmetric, also may be expressed in matrix form: And for inverse transform we have:

30 Walsh Transform When N=2 n, the 2-D forward and inverse Walsh kernels are given by the relations Where b k (z) is the kth bit in the binary representation of z. So the forward and inverse Walsh transforms are equal in form; that is:

31 Walsh Transform “+” denotes for +1 and “-” denotes for -1. In 1-D case we have : In the following table N=8 so n=3 (2 3 =8). 1-D kernel

32 Walsh Transform This figure shows the basis functions (kernels) as a function of u and v (excluding the 1/N constant term) for computing the Walsh transform when N=4. Each block corresponds to varying x and y form 0 to 3 (that is, 0 to N-1), while keeping u and v fixed at the values corresponding to that block. Thus each block consists of an array of 4×4 binary elements (White means “+1” and Black means “-1”). To use these basis functions to compute the Walsh transform of an image of size 4×4 simply requires obtaining W(0,0) by multiplying the image array point-by-point with the 4×4 basis block corresponding to u=0 and v=0, adding the results, and dividing by 4, and continue for other values of u and v.

33 Walsh Transform Example Main Image (Gray Level)WT of Main image (Walsh spectrum) Logarithmic scaled of the Walsh spectrum

34 Walsh Transform (WT) % Program written in Matlab for computing WT of a given gray color image. clear; % Getting the name and extension of the image file from the user. name=input('Please write the name and address of the image : ','s'); a=imread(name); N=length(a); % Computing Walsh Transform of the image file. n=log2(N);n=1+fix(n);f=ones(N,N); for x=1:N; for u=1:N p=dec2bin(x-1,n); q=dec2bin(u-1,n); for i=1:n; f(x,u)=f(x,u)*((-1)^(p(n+1-i)*q(i))); end;end;end F=(1/N)*f*double(a)*f; MATLAB program page 1 from 3.

35 Walsh Transform (WT) % Shifting the Fourier spectrum to the center of the frequency square. for i=1:N/2; for j=1:N/2 G(i+N/2,j+N/2)=F(i,j); end;end for i=N/2+1:N; for j=1:N/2 G(i-N/2,j+N/2)=F(i,j); end;end for i=1:N/2; for j=N/2+1:N G(i+N/2,j-N/2)=F(i,j); end;end for i=N/2+1:N; for j=N/2+1:N G(i-N/2,j-N/2)=F(i,j); end;end MATLAB program page 2 from 3.

36 Walsh Transform (WT) % Computing and scaling the logarithmic Walsh spectrum. H=log(1+abs(G)); for i=1:N H(i,:)=H(i,:)*255/abs(max(H(i,:))); end % Changing the color map to gray scale (8 bits). colormap(gray(255)); % Showing the main image and its Walsh spectrum. subplot(2,2,1),image(a),title('Main image'); subplot(2,2,2),image(abs(G)),title('Walsh spectrum'); subplot(2,2,3),image(H),title('Logarithmic scaled Walsh spectrum'); MATLAB program page 3 from 3.

37 Hadamard Transform When N=2 n, the 2-D forward and inverse Hadamard kernels are given by the relations Where b k (z) is the kth bit in the binary representation of z. So the forward and inverse Hadamard transforms are equal in form; that is:

38 Hadamard Transform In 1-D case we have : In the following table N=8 so n=3 (2 3 =8). 1-D kernel “+” denotes for +1 and “-” denotes for -1.

39 Hadamard Transform This figure shows the basis functions (kernels) as a function of u and v (excluding the 1/N constant term) for computing the Hadamard transform when N=4. Each block corresponds to varying x and y form 0 to 3 (that is, 0 to N-1), while keeping u and v fixed at the values corresponding to that block. Thus each block consists of an array of 4×4 binary elements (White means “+1” and Black means “-1”) like Walsh transform. If we compare these two transforms we can see that they only differ in the sense that the functions in Hadamard transform are ordered in increasing sequency and thus are more “natural” to interpret.

40 Hadamard Transform Example Main Image (Gray Level)HT of Main image (Hadamard spectrum) Logarithmic scaled of the Hadamard spectrum

41 Hadamard Transform (HT) % Program written in Matlab for computing HT of a given gray color image. clear; % Getting the name and extension of the image file from the user. name=input('Please write the name and address of the image : ','s'); a=imread(name); N=length(a); % Computing Hadamard Transform of the image file. n=log2(N);n=1+fix(n);f=ones(N,N); for x=1:N; for u=1:N p=dec2bin(x-1,n); q=dec2bin(u-1,n); for i=1:n; f(x,u)=f(x,u)*((-1)^(p(n+1-i)*q(n+1-i))); end;end;end F=(1/N)*f*double(a)*f; MATLAB program page 1 from 3.

42 Hadamard Transform (HT) % Shifting the Fourier spectrum to the center of the frequency square. for i=1:N/2; for j=1:N/2 G(i+N/2,j+N/2)=F(i,j); end;end for i=N/2+1:N; for j=1:N/2 G(i-N/2,j+N/2)=F(i,j); end;end for i=1:N/2; for j=N/2+1:N G(i+N/2,j-N/2)=F(i,j); end;end for i=N/2+1:N; for j=N/2+1:N G(i-N/2,j-N/2)=F(i,j); end;end MATLAB program page 2 from 3.

43 Hadamard Transform (HT) % Computing and scaling the logarithmic Hadamard spectrum. H=log(1+abs(G)); for i=1:N H(i,:)=H(i,:)*255/abs(max(H(i,:))); end % Changing the color map to gray scale (8 bits). colormap(gray(255)); % Showing the main image and its Hadamard spectrum. subplot(2,2,1),image(a),title('Main image'); subplot(2,2,2),image(abs(G)),title('Hadamard spectrum'); subplot(2,2,3),image(H),title('Logarithmic scaled Hadamard spectrum'); MATLAB program page 3 from 3.

44 Walsh-Hadamard Transform (WHT)

45 1-D WHT Kernel Functions

46 2-D WHT Kernel Functions

47 WHT and Fourier Transform

48 WHT Example

49 Discrete Cosine Transform

50 Discrete Cosine Transform (DCT) Each block consists of 4×4 elements, corresponding to x and y varying from 0 to 3. The highest value is shown in white. Other values are shown in grays, with darker meaning smaller.

51 Discrete Cosine Transform Example Main Image (Gray Level)DCT of Main image (Cosine spectrum) Logarithmic scaled of the Cosine spectrum

52 Discrete Cosine Transform % Program written in Matlab for computing DCT of a given gray color image. % Clear the memory. clear; % Getting the name and extension of the image file from the user. name=input('Please write the name and address of the image : ','s'); % Reading the image file into variable 'a'. a=imread(name); % Computing the size of image. Assuming that image is squared. N=length(a); % Computing DCT of the image file. F=dct2(double(a)); MATLAB program page 1 from 3.

53 Discrete Cosine Transform % Shifting the Fourier spectrum to the center of the frequency square. for i=1:N/2; for j=1:N/2 G(i+N/2,j+N/2)=F(i,j); end;end for i=N/2+1:N; for j=1:N/2 G(i-N/2,j+N/2)=F(i,j); end;end for i=1:N/2; for j=N/2+1:N G(i+N/2,j-N/2)=F(i,j); end;end for i=N/2+1:N; for j=N/2+1:N G(i-N/2,j-N/2)=F(i,j); end;end MATLAB program page 2 from 3.

54 Discrete Cosine Transform % Computing and scaling the logarithmic Cosine spectrum. H=log(1+abs(G)); for i=1:N H(i,:)=H(i,:)*255/abs(max(H(i,:))); end % Changing the color map to gray scale (8 bits). colormap(gray(255)); % Showing the main image and its Cosine spectrum. subplot(2,2,1),image(a),title('Main image'); subplot(2,2,2),image(abs(G)),title('Cosine spectrum'); subplot(2,2,3),image(H),title('Logarithmic scaled Cosine spectrum'); MATLAB program page 3 from 3.

55 DCT and Fourier Transform

56 DCT Example

57 Blockwise DCT Example

58 Fast DCT Algorithm

59 Fast DCT Algorithm

60 Haar Transform The Haar transform is based on the Haar functions, h k (z), which are defined over the continuous, closed interval [0,1] for z, and for k=0,1,2,…,N-1, where N=2 n. The first step in generating the Haar transform is to note that the integer k can be decomposed uniquely ask=2 p +q-1 where 0≤p≤n-1, q=0 or 1 for p=0, and 1≤q≤2 p for p≠0. With this background, the Haar functions are defined as

61 Haar Transform Haar transform matrix for sizes N=2,4,8 Can be computed by taking sums and differences. Fast algorithms by recursively applying Hr 2.

62 Haar Transform Example

63 Haar Transform Example

64 Haar Transform MATLAB program page 1 from 1. % Program written in Matlab for computing HT of a given gray color image. % Getting the name and extension of the image file from the user. name=input('Please write the name and address of the image : ','s'); a=imread(name); N=length(a); % Computing Haar Transform of the image file. for i=1:N p=fix(log2(i)); q=i-(2^p); for j=1:N z=(j-1)/N; if (z>=(q-1)/(2^p))&&(z<(q-1/2)/2^p) f(i,j)=(1/(sqrt(N)))*(2^(p/2)); elseif (z>=(q-1/2)/(2^p))&&(z<(q/2^p)) f(i,j)=(1/(sqrt(N)))*(-(2^(p/2))); else f(i,j)=0; end;end;end F=f*double(a)*f; % Changing the color map to gray scale (8 bits). colormap(gray(255)); % Showing the main image and its Hadamard spectrum. subplot(2,2,1),image(a),title('Main image'); subplot(2,2,2),image(abs(F)),title('Haar spectrum');

65 Slant Transform The Slant Transform matrix of order N*N is the recursive expression

66 Slant Transform Where I is the identity matrix, and

67 Slant Transform Example Main Image (Gray Level)Slant Transform of Main image (Slant spectrum)

68 Slant Transform MATLAB program page 1 from 1. % Program written in Matlab for computing ST of a given gray color image. % Getting the name and extension of the image file from the user. name=input('Please write the name and address of the image : ','s'); a=imread(name); N=length(a); % Computing Slant Transform of the image file. A=[ 1/(2^0.5) 1/(2^0.5);1/(2^0.5) -1/(2^0.5)]; for i=2:log2(N) N=2^i; aN=((3*(N^2))/(4*((N^2)-1)))^0.5; bN=(((N^2)-4)/(4*((N^2)-1)))^0.5; m=1/(2^0.5)*[1 0 zeros(1,(N/2)-2) 1 0 zeros(1,(N/2)-2) aN bN zeros(1,(N/2)-2) -aN bN zeros(1,(N/2)-2) zeros((N/2)-2,2) eye((N/2)-2) zeros((N/2)-2,2) eye((N/2)-2) 0 1 zeros(1,(N/2)-2) 0 -1 zeros(1,(N/2)-2) -bN aN zeros(1,(N/2)-2) bN aN zeros(1,(N/2)-2) zeros((N/2)-2,2) eye((N/2)-2) zeros((N/2)-2,2) -eye((N/2)-2)]; n=[A A-A;A-A A]; A=m*n; end F=A*double(a)*A; % Changing the color map to gray scale (8 bits). colormap(gray(255)); % Showing the main image and its Hadamard spectrum. subplot(2,2,1),image(a),title('Main image'); subplot(2,2,2),image(abs(F)),title('Slant spectrum');

69 Comparison Of Various Transforms

70 Comparison Of Various Transforms

71 Comparison Of Various Transforms

72 Comparison Of Various Transforms

73 References “Digital image processing” by Rafael C. Gonzalez and Richard E. Woods “Digital image processing” by Jain Image communication I by Bernd Girod Lecture 3, DCS339/AMCM053 by Pengwei Hao, University of London