Computer Vision. Fourier Transform. 20 January Copyright by NHL Hogeschool and Van de Loosdrecht Machine Vision BV All rights reserved

Similar documents
Digital Image Processing. Lecture 6

Texture. Outline. Image representations: spatial and frequency Fourier transform Frequency filtering Oriented pyramids Texture representation

Lecture 5: Frequency Domain Transformations

Computer Vision 2. SS 18 Dr. Benjamin Guthier Professur für Bildverarbeitung. Computer Vision 2 Dr. Benjamin Guthier

An Intuitive Explanation of Fourier Theory

Image Processing. Filtering. Slide 1

Computer Vision and Graphics (ee2031) Digital Image Processing I

3. Image formation, Fourier analysis and CTF theory. Paula da Fonseca

Biomedical Image Analysis. Spatial Filtering

CoE4TN4 Image Processing. Chapter 5 Image Restoration and Reconstruction

Examination in Image Processing

Michael Moody School of Pharmacy University of London 29/39 Brunswick Square London WC1N 1AX, U.K.

To Do. Advanced Computer Graphics. Sampling and Reconstruction. Outline. Sign up for Piazza

Theoretically Perfect Sensor

Anno accademico 2006/2007. Davide Migliore

Lecture 2: 2D Fourier transforms and applications

Image restoration. Lecture 14. Milan Gavrilovic Centre for Image Analysis Uppsala University

Aliasing And Anti-Aliasing Sampling and Reconstruction

Tutorial 5. Jun Xu, Teaching Asistant March 2, COMP4134 Biometrics Authentication

Noise Model. Important Noise Probability Density Functions (Cont.) Important Noise Probability Density Functions

BME I5000: Biomedical Imaging

Theoretically Perfect Sensor

Image Sampling and Quantisation

Image Sampling & Quantisation

ME/CS 132: Introduction to Vision-based Robot Navigation! Low-level Image Processing" Larry Matthies"

Aliasing. Can t draw smooth lines on discrete raster device get staircased lines ( jaggies ):

CS1114 Section 8: The Fourier Transform March 13th, 2013

Digital Image Processing. Image Enhancement in the Frequency Domain

Scaled representations

Edge and local feature detection - 2. Importance of edge detection in computer vision

Biomedical Image Processing

Image processing in frequency Domain

Computer Graphics. Sampling Theory & Anti-Aliasing. Philipp Slusallek

Lecture 6: Edge Detection

Edge Detection Lecture 03 Computer Vision

Outline. Sampling and Reconstruction. Sampling and Reconstruction. Foundations of Computer Graphics (Fall 2012)

Chapter 11 Image Processing

Outline. Foundations of Computer Graphics (Spring 2012)

Image Processing Fundamentals. Nicolas Vazquez Principal Software Engineer National Instruments

Computational Aspects of MRI

The main goal of Computer Graphics is to generate 2D images 2D images are continuous 2D functions (or signals)

Simple Spatial Domain Filtering

Digital Image Processing. Prof. P. K. Biswas. Department of Electronic & Electrical Communication Engineering

Fourier Transform and Texture Filtering

CPSC 425: Computer Vision

BCC Rays Ripply Filter

Filtering Images in the Spatial Domain Chapter 3b G&W. Ross Whitaker (modified by Guido Gerig) School of Computing University of Utah

The 2D Fourier transform & image filtering

Modern CT system generations Measurement of attenuation

Reconstruction in CT and hints to the assignments

Motivation. The main goal of Computer Graphics is to generate 2D images. 2D images are continuous 2D functions (or signals)

A Print-Scan Resilient Watermarking based on Fourier Transform and Image Restoration

convolution shift invariant linear system Fourier Transform Aliasing and sampling scale representation edge detection corner detection

Coding and Modulation in Cameras

Point and Spatial Processing

ECG782: Multidimensional Digital Signal Processing

Honors Precalculus: Solving equations and inequalities graphically and algebraically. Page 1

Computer Graphics. Texture Filtering & Sampling Theory. Hendrik Lensch. Computer Graphics WS07/08 Texturing

Types of Edges. Why Edge Detection? Types of Edges. Edge Detection. Gradient. Edge Detection

Digital Image Processing

CPSC 425: Computer Vision

Lecture 7: Most Common Edge Detectors

Digital Signal Processing Lecture Notes 22 November 2010

Image Processing. Application area chosen because it has very good parallelism and interesting output.

Michael Moody School of Pharmacy University of London 29/39 Brunswick Square London WC1N 1AX, U.K.

Digital Image Processing COSC 6380/4393

What will we learn? Neighborhood processing. Convolution and correlation. Neighborhood processing. Chapter 10 Neighborhood Processing

Assignment 3: Edge Detection

Spatial Enhancement Definition

BCC Multi Stretch Wipe

Overview. Spectral Processing of Point- Sampled Geometry. Introduction. Introduction. Fourier Transform. Fourier Transform

Algorithms for Recognition of Low Quality Iris Images. Li Peng Xie University of Ottawa

Computer Vision & Deep Learning

WEINER FILTER AND SUB-BLOCK DECOMPOSITION BASED IMAGE RESTORATION FOR MEDICAL APPLICATIONS

EXAM SOLUTIONS. Image Processing and Computer Vision Course 2D1421 Monday, 13 th of March 2006,

Sampling, Aliasing, & Mipmaps

Filtering Images. Contents

Reconstruction of Images Distorted by Water Waves

Lecture 8 Object Descriptors

Basics. Sampling and Reconstruction. Sampling and Reconstruction. Outline. (Spatial) Aliasing. Advanced Computer Graphics (Fall 2010)

Central Slice Theorem

Imaging and Deconvolution

Lecture 4: Spatial Domain Transformations

Image Restoration and Reconstruction

Computer vision. 3D Stereo camera Bumblebee. 10 April 2018

Computer Vision I. Announcements. Fourier Tansform. Efficient Implementation. Edge and Corner Detection. CSE252A Lecture 13.

Graphics and Interaction Transformation geometry and homogeneous coordinates

Synthesis Imaging. Claire Chandler, Sanjay Bhatnagar NRAO/Socorro

COMP30019 Graphics and Interaction Transformation geometry and homogeneous coordinates

2 Unit Bridging Course Day 10

Announcements. Edges. Last Lecture. Gradients: Numerical Derivatives f(x) Edge Detection, Lines. Intro Computer Vision. CSE 152 Lecture 10

Fourier transforms and convolution

1. The Pythagorean Theorem

Module 4. K-Space Symmetry. Review. K-Space Review. K-Space Symmetry. Partial or Fractional Echo. Half or Partial Fourier HASTE

Matching and Recognition in 3D. Based on slides by Tom Funkhouser and Misha Kazhdan

INVARIANT CORNER DETECTION USING STEERABLE FILTERS AND HARRIS ALGORITHM

Lectures Remote Sensing

EE795: Computer Vision and Intelligent Systems

Thomas Abraham, PhD

ECG782: Multidimensional Digital Signal Processing

Transcription:

Van de Loosdrecht Machine Vision Computer Vision Fourier Transform 20 January 2017 Copyright 2001 2017 by NHL Hogeschool and Van de Loosdrecht Machine Vision BV All rights reserved j.van.de.loosdrecht@nhl.nl, jaap@vdlmv.nl Fourier Transform (FT) Introduction Applications Finding periodic structures Convolution theorem Removing defocus and motion blur (deconvolution) Correlation Calculation of sharpness in the image 20-jan-17 Fourier Transform 2

Fourier Transform Introduction Frequency Fourier analysis 1D Fourier transform Complex numbers 2D Fourier transform Displaying FT of images Some examples of synthetic images Interpreting the frequency domain Demonstration image shift (*) Demonstration exchange of magnitude and phase (*) 20-jan-17 Fourier Transform 3 Frequency sin(x) low sin(3x) middle sin(5x) high 20-jan-17 Fourier Transform 4

Fourier analysis Every periodic signal can be written as a summation of a series of sine shaped signals with an increasing frequency: DC component (harmonic 0) h1 * harmonic 1 (base frequency) h2 * harmonic 2 (2 x base frequency) h3 * harmonic 3. hn * harmonic n 20-jan-17 Fourier Transform 5 Fourier analysis of block wave A block wave can be approximated with: f h 2 2* h sin( x) π 1 sin(3x) 3 sin(5x) 5 ( x) = + + + +... Where the block wave has an amplitude of h and a period of 2π. 20-jan-17 Fourier Transform 6

Block wave approximation Block wave sin(x) DC + H1 DC 20-jan-17 Fourier Transform 7 Block wave approximation Block wave sin(x) 1/3 sin(3x) DC + H1 + H3 DC 20-jan-17 Fourier Transform 8

Block wave approximation Block wave sin(x) 1/3 sin(3x) 1/5 sin(5x) DC+ H1 +.. + H5 DC 20-jan-17 Fourier Transform 9 Block wave approximation Block wave sin(x) 1/3 sin(3x) 1/5 sin(5x) 1/7 sin(7x) DC + H1 +.. + H7 DC 20-jan-17 Fourier Transform 10

Block wave approximation Block w ave DC + H1 + H3 DC+ H1 +.. + H5 DC + H1 +.. + H7 DC + H1 DC 20-jan-17 Fourier Transform 11 Fourier analysis time domain Time domain DC sin x 1/3sin 4x 1/7 sin 5x Fourier Transform Inverse Fourier Transform 1/11 sin 7x composite Frequency domain Frequency domain 0 1 2 3 4 5 6 7 8 20-jan-17 Fourier Transform 12

Fourier analysis Example: by analyzing the noise of a machine, anti-noise can be generated by inverting the phase of the noise 20-jan-17 Fourier Transform 13 1D Fourier transform Fourier transform Inverse Fourier transform FT(u) f (x) e 2πiux i = 1 + 2πiux = f (x)e dx + 2πiux = FT(u)e du = cos(2πux) isin(2πux) Fast Fourier Transform (FFT): fast implementation for signals with a length of a power of two 20-jan-17 Fourier Transform 14

2D Fourier transform Images: are 2D signals are interpreted as continuous signals 20-jan-17 Fourier Transform 15 Complex numbers Cartesian representation c = x + i y, where x and y are real numbers x: real part y: imaginary part Polar representation r: magnitude (amplitude) phi: phase (angle) y r z ϕ x 20-jan-17 Fourier Transform 16

Typical framework for FT operations IntImage Conversion ComplexImage FT ComplexImage operations ComplexImage FT inv ComplexImage IntImage Conversion 20-jan-17 Fourier Transform 17 Demonstration FT Open image circles.jls Zoom 256 256 BilinearPixelInterpolation convert ComplexDoubleImage Show with edit convert image that pixels are complex numbers with imaginary part = 0 FT complex image and use display LUT FloatLog Analyse edit result Perform the inverse FT on FT image Analyse edit result = almost original image (some rounding errors) 20-jan-17 Fourier Transform 18

Convert to ComplexDouble image 20-jan-17 Fourier Transform 19 FT of circles 20-jan-17 Fourier Transform 20

FT of circles 20-jan-17 Fourier Transform 21 Inverse FT 20-jan-17 Fourier Transform 22

Displaying complex images In VisionLab the power spectrum of a complex image is displayed The power spectrum is the square of the magnitude The power spectrum of the FT of an image is symmetric to the origin and has often a high dynamical range There are two display LUT s: FloatLog FloatLinear 20-jan-17 Fourier Transform 23 Demonstration sinus patterns Open script fftd1_2.jls Execute first part to generate a vertical sinus pattern and its FT, note: direction in frequency domain (FT) is perpendicular to direction in space domain Continue script for second part in order to generate a vertical sinus pattern with a lower frequency and its FT, note: maxima in frequency domain are closer to the origin Continue script for third part in order to generate a vertical sinus pattern with is 45 degrees rotated and its FT, note: maxima frequency domain are perpendicular to patterns in space domain Continue script for fourth part in order to generate a 2D sinus pattern and its FT 20-jan-17 Fourier Transform 24

Vertical sinus pattern 20-jan-17 Fourier Transform 25 Vertical sinus pattern with a lower frequency 20-jan-17 Fourier Transform 26

Sinus pattern is rotated 45 degrees 20-jan-17 Fourier Transform 27 2D sinus pattern 20-jan-17 Fourier Transform 28

Demonstration block patterns Open script fft_b.jls Execute first part to generate a vertical block pattern and its FT, note: only odd frequencies are present in frequency domain Execute second part to generate a vertical block pattern with a higher frequency and its FT, note: peaks in frequency domain have a bigger distance Execute third part to generate a 2D block pattern and its FT 20-jan-17 Fourier Transform 29 Vertical block pattern 20-jan-17 Fourier Transform 30

Vertical block pattern with a higher frequency 20-jan-17 Fourier Transform 31 2D block pattern 20-jan-17 Fourier Transform 32

Interpreting the power spectrum Frequencies increase from the origin low frequency high frequency DC component = sum pixels (origin) 20-jan-17 Fourier Transform 33 Interpreting the frequency domain It is not easy possible to interpret the Cartesian representation. Some interpretation can be given in the Polar representation: The magnitude information gives information on the frequencies of the periodic structures contained in the image The phase information contains information about the position of those structures The power spectrum (square of the magnitude ) gives the distribution of the energy of the frequencies in the image 20-jan-17 Fourier Transform 34

Demonstration image shift (*) Use script fft_pshift.jls image circles.jl is cyclic shifted 8 pixels to the right Original and shifted are Fourier transformed Compare magnitudes of both transformed images Compare phases of both transformed images 20-jan-17 Fourier Transform 35 Differences in magnitudes (*) 20-jan-17 Fourier Transform 36

Differences in phase (*) 20-jan-17 Fourier Transform 37 Demonstration exchange of magnitude and phase (*) Use script fft_phase.jls Image circles.jl is Fourier transformed Image text.jl is Fourier transformed Generate for both transformed images an image with magnitude information and an image with phase information A complex image with magnitude information from circles and phase information from text is created A complex image with phase information from circles and magnitude information from text is created Both new complex image are inversed Fourier transformed Conclusion the phase information determines the content of the image 20-jan-17 Fourier Transform 38

Demonstration exchange of magnitude and phase (*) magnitude magnitude phase phase 20-jan-17 Fourier Transform 39 Applications of Fourier transform Applications: Finding periodic structures Low and high pass filter Band reject filter Convolution Removing defocus and motion blur (deconvolution) Correlation 20-jan-17 Fourier Transform 40

Demonstration low and high pass filter Use script fft_filter.jls Image circles.jl is Fourier transformed Ideal low pass filter: A circular mask image is created and multiplied with Fourier transform, this means that only the low frequencies are selected Result is inversed Fourier transformed, note artifacts in image due to ideal (theoretical) low pass filter Practical low pass filter: A soft circular mask with a Gaussian distribution is created and multiplied with Fourier transform, this means that only the low frequencies are selected Result is inversed Fourier transformed and shows only the low frequencies High pass filter: A mask for the high pass filter is created and multiplied with Fourier transform, this means that the low frequencies are blocked Result is inversed Fourier transformed and shows only the high frequencies 20-jan-17 Fourier Transform 41 Image circles.jl and it s FT 20-jan-17 Fourier Transform 42

A circular mask image is created and multiplied with Fourier transform 20-jan-17 Fourier Transform 43 Result of ideal low pass filter 20-jan-17 Fourier Transform 44

A soft circular mask image is created and multiplied with Fourier transform 20-jan-17 Fourier Transform 45 Result of Gaussian low pass filter 20-jan-17 Fourier Transform 46

Mask for high pass filter 20-jan-17 Fourier Transform 47 Result of high pass filter 20-jan-17 Fourier Transform 48

Demonstration band reject filter Purpose is to demonstrate how periodic structures (interference) can be removed from an image Use script fft_bandreject.jls A distorted image circles.jl is created by adding a 45 degrees rotated sinus pattern. The distorted image is Fourier transformed. The magnitude information is extracted and the positions of the maxima is searched for A filter image with small Gaussian circles is created on the position of the maxima, note: the higher order components are not selected! The filter image is inverted because the frequencies must be blocked Inverted filter is multiplied with FT Result is inversed FTed, note still artefacts in image, result is not perfect at the borders, due to high order components 20-jan-17 Fourier Transform 49 Distorted image and it s FT 20-jan-17 Fourier Transform 50

Search for the maxima 20-jan-17 Fourier Transform 51 Filter image with small Gausian circles 20-jan-17 Fourier Transform 52

Inverted filter image 20-jan-17 Fourier Transform 53 Inverted filter is multiplied with FT 20-jan-17 Fourier Transform 54

Inverse FT 20-jan-17 Fourier Transform 55 Animation Fourier Transform Open script FourierAnimation.jls 20-jan-17 Fourier Transform 56

Convolution theorem Notation: = convolution Spatial domain image mask = convoluted _ image Frequency domain FT ( image)* FT( mask) = FT ( convoluted _ image) Convolution using FT convoluted _ image = FT inv ( FT( image)* FT( mask)) 20-jan-17 Fourier Transform 57 Convolution theorem image FT FT image mask FT FT mask * FT image * FT mask FT inv Convoluted_image 20-jan-17 Fourier Transform 58

Convolution theorem A convolution in the spatial domain is exactly equivalent to a multiplication in the frequency domain. If the kernel is smaller then the image, it is padded with zeroes to the full image size. (some round off errors at the borders) 20-jan-17 Fourier Transform 59 Demonstration Convolution theorem Use script fft_conv.jls Image circles.jl and it s FT A point spread function (psf) mask is created and it s FT FT s are multiplied and result is reversed FT, note similar result as convolution in spatial domain with a big smoothing mask Note: the differences with the example of script fft_filter.jls: in fft_conv.jls the FT of psf is multiplied with FT of image. in script fft_filter.jls a disk shape is multiplied with the FT of image 20-jan-17 Fourier Transform 60

Image circles and it s FT 20-jan-17 Fourier Transform 61 psf mask and it s FT 20-jan-17 Fourier Transform 62

FT s are multiplied and result is reversed FT 20-jan-17 Fourier Transform 63 Removing defocus blur (deconvolution) Notation: = convolution FT image = FT(image) Making unsharp: Spatial domain image psf = blurr Frequency domain FT FT = FT image psf blurr 20-jan-17 Fourier Transform 64

Removing defocus blur (deconvolution) Making unsharp image sharp in frequency domain: FT FT blurr psf = FT image But FT psf contains complex zeroes: FT blurr FT FTpsf FTblurr FT blurr psf FTblurr FT = = = 2 FTpsf FTpsf FTpsf FTpsf FTpsf FT psf psf Divider is now a real, but still can be zero 20-jan-17 Fourier Transform 65 Wiener filter Idea: add a small constant to the divider FT FT blurr psf FT = FT blurr psf FT 2 psf + k 20-jan-17 Fourier Transform 66

Demonstration deconvolution Use script blurr.jls lread blurr blurr.jl display blurr copy blurr psf diskshape psf 128 128 8 1 display psf copy blurr res deconvolution res psf 0.01 // Wiener filter display res Notes: Result is not perfect Parameters to tune: size of psf and estimate for k Image restoration is a special branch of science and outside of scope of this course 20-jan-17 Fourier Transform 67 Deconvolution 20-jan-17 Fourier Transform 68

Exercise removing motion blur Use image motion_blur.jl Try to remove the motion blur Hint: use script blurr.jls as template and determine suitable point spread function Answer: motion_blur.jls 20-jan-17 Fourier Transform 69 Correlation Purpose: finding a specified pattern in an image Idea: pattern is used as convolution mask, everywhere where the pattern fits to the image it will give a high convolution result Theory: inv find the peaks in FT (FTimage FTpattern ) Note: can not handle rotation and / or scaling 20-jan-17 Fourier Transform 70

Demonstration correlation Use script correlation.jls Open image correlation.jl and select pattern Add border to search pattern with average gray value Correlate image with search pattern Threshold on peaks of correlation Map search result on original image, Notes: One u is seen for a e Result is poor because pattern is small 20-jan-17 Fourier Transform 71 Image and search pattern 20-jan-17 Fourier Transform 72

Add border to search pattern 20-jan-17 Fourier Transform 73 Correlate image with search pattern 20-jan-17 Fourier Transform 74

Threshold on peaks of correlation 20-jan-17 Fourier Transform 75 Map search result on original image 20-jan-17 Fourier Transform 76

Calculation of sharpness in the image Frequencies increase from the origin low frequency high frequency DC component (origin) Idea: calculate the energy in the higher frequencies 20-jan-17 Fourier Transform 77 In focus value InFocusValue (image, lowestfreqnr) This operator calculates a value for how good the image is in focus (='sharpness'). The higher the returned value the more high frequencies are present in the image. The parameter lowestfreqnr specifies the lowest frequency nr in the FT which is used in the calculation. 20-jan-17 Fourier Transform 78

Demonstration In focus value Apply operator InFocusValue on the images with lowestfreqnr = 20: (show results in server log) Plate_m1.jl (before focus) Plate_0.jl (in focus) Plate_p1.jl (after focus) 20-jan-17 Fourier Transform 79 Demonstration In focus value 20-jan-17 Fourier Transform 80

Exercise sharpness calculation Make a script in order to calculate the sharpness in an image. Use the following images to test the script: Plate_m1.jl (before focus) Plate_0.jl (in focus) Plate_p1.jl (after focus) Modify the script in order to shoot continuously image with the camera and display for each image its sharpness Answer first part: sharpness.jls 20-jan-17 Fourier Transform 81