CS 691 Computational Photography Instructor: Gianfranco Doretto Frequency Domain.

Slides:



Advertisements
Similar presentations
Computer Vision Spring ,-685 Instructor: S. Narasimhan Wean Hall 5409 T-R 10:30am – 11:50am.
Advertisements

Linear Filtering – Part II Selim Aksoy Department of Computer Engineering Bilkent University
15-463: Computational Photography Alexei Efros, CMU, Spring 2010 Most slides from Steve Marschner Sampling and Reconstruction.
Ted Adelson’s checkerboard illusion. Motion illusion, rotating snakes.
CS 691 Computational Photography
Computational Photography: Sampling + Reconstruction Connelly Barnes Slides from Alexei Efros and Steve Marschner.
Thinking in Frequency Computer Vision Brown James Hays Slides: Hoiem, Efros, and others.
Computer Vision University of Illinois Derek Hoiem
Linear Filtering – Part II Selim Aksoy Department of Computer Engineering Bilkent University
Computational Photography CSE 590 Tamara Berg Filtering & Pyramids.
Reminder Fourier Basis: t  [0,1] nZnZ Fourier Series: Fourier Coefficient:
Convolution, Edge Detection, Sampling : Computational Photography Alexei Efros, CMU, Fall 2006 Some slides from Steve Seitz.
Recap from Monday Spectra and Color Light capture in cameras and humans.
General Functions A non-periodic function can be represented as a sum of sin’s and cos’s of (possibly) all frequencies: F(  ) is the spectrum of the function.
Image transformations, Part 2 Prof. Noah Snavely CS1114
Advanced Computer Graphics (Spring 2006) COMS 4162, Lecture 3: Sampling and Reconstruction Ravi Ramamoorthi
CSCE 641 Computer Graphics: Fourier Transform Jinxiang Chai.
15-463: Computational Photography Alexei Efros, CMU, Fall 2011 Many slides from Steve Marschner Sampling and Reconstruction.
Fourier Analysis Without Tears : Computational Photography Alexei Efros, CMU, Fall 2005 Somewhere in Cinque Terre, May 2005.
The Frequency Domain : Computational Photography Alexei Efros, CMU, Fall 2011 Somewhere in Cinque Terre, May 2005 Many slides borrowed from Steve.
CPSC 641 Computer Graphics: Fourier Transform Jinxiang Chai.
The Frequency Domain : Computational Photography Alexei Efros, CMU, Fall 2008 Somewhere in Cinque Terre, May 2005 Many slides borrowed from Steve.
Computational Photography: Fourier Transform Jinxiang Chai.
Slides from Alexei Efros, Steve Marschner Filters & fourier theory.
Fourier Analysis : Rendering and Image Processing Alexei Efros.
Fourier Transform 2D Discrete Fourier Transform - 2D
02/12/02 (c) 2002 University of Wisconsin, CS 559 Filters A filter is something that attenuates or enhances particular frequencies Easiest to visualize.
Advanced Computer Graphics CSE 190 [Spring 2015], Lecture 3 Ravi Ramamoorthi
CSC589 Introduction to Computer Vision Lecture 9 Sampling, Gaussian Pyramid Bei Xiao.
Computer Vision Spring ,-685 Instructor: S. Narasimhan Wean 5403 T-R 3:00pm – 4:20pm.
Computer Vision Spring ,-685 Instructor: S. Narasimhan Wean 5409 T-R 10:30am – 11:50am.
CSE 185 Introduction to Computer Vision Image Filtering: Frequency Domain.
Slide credit Fei Fei Li. Image filtering Image filtering: compute function of local neighborhood at each position Really important! – Enhance images.
Computational Photography lecture 5 – filtering and frequencies CS 590 Spring 2014 Prof. Alex Berg (Credits to many other folks on individual slides)
Applications of Image Filters Computer Vision CS 543 / ECE 549 University of Illinois Derek Hoiem 02/04/10.
The Frequency Domain Somewhere in Cinque Terre, May 2005 Many slides borrowed from Steve Seitz CS194: Image Manipulation & Computational Photography Alexei.
Recap of Friday linear Filtering convolution differential filters
Computer Vision James Hays Thinking in Frequency Computer Vision James Hays Slides: Hoiem, Efros, and others.
CSC589 Introduction to Computer Vision Lecture 7 Thinking in Frequency Bei Xiao.
CSE 185 Introduction to Computer Vision Image Filtering: Frequency Domain.
Lecture 3: Edge detection CS4670/5670: Computer Vision Kavita Bala From Sandlot ScienceSandlot Science.
09/19/2002 (C) University of Wisconsin 2002, CS 559 Last Time Color Quantization Dithering.
Thinking in Frequency Computational Photography University of Illinois Derek Hoiem 09/01/15.
The Frequency Domain : Computational Photography Alexei Efros, CMU, Fall 2010 Somewhere in Cinque Terre, May 2005 Many slides borrowed from Steve.
Recap of Monday linear Filtering convolution differential filters filter types boundary conditions.
Image as a linear combination of basis images
Fourier Transform.
Image hole-filling. Agenda Project 2: Will be up tomorrow Due in 2 weeks Fourier – finish up Hole-filling (texture synthesis) Image blending.
Lecture 5: Fourier and Pyramids
Cornell CS465 Fall 2004 Lecture 5© 2004 Steve Marschner 1 Sampling and reconstruction CS 465 Lecture 5.
Last Lecture photomatix.com. Today Image Processing: from basic concepts to latest techniques Filtering Edge detection Re-sampling and aliasing Image.
Frequency domain analysis and Fourier Transform
Fourier Transform and Frequency Domain
Slide credit Fei Fei Li.
The Frequency Domain, without tears
Computer Vision Brown James Hays 09/16/11 Thinking in Frequency Computer Vision Brown James Hays Slides: Hoiem, Efros, and others.
Sampling, Template Matching and Pyramids
Slow mo guys – Saccades
Lecture 1.26 Spectral analysis of periodic and non-periodic signals.
Frequency domain analysis and Fourier Transform
General Functions A non-periodic function can be represented as a sum of sin’s and cos’s of (possibly) all frequencies: F() is the spectrum of the function.
Fourier Transform.
The Frequency Domain : Computational Photography
Recap from Wednesday Spectra and Color Light capture in cameras and humans.
Sampling and Reconstruction
CSCE 643 Computer Vision: Thinking in Frequency
Instructor: S. Narasimhan
Oh, no, wait, sorry, I meant, welcome to the implementation of 20th-century science fiction literature, or a small part of it, where we will learn about.
Fourier Analysis Without Tears
Thinking in Frequency Computational Photography University of Illinois
Presentation transcript:

CS 691 Computational Photography Instructor: Gianfranco Doretto Frequency Domain

Overview Frequency domain analysis Sampling and reconstruction

Linear image transformations In analyzing images, it’s often useful to make a change of basis. Fourier transform, or Wavelet transform, or Steerable pyramid transform Vectorized image transformed image

Self-inverting transforms Same basis functions are used for the inverse transform U transpose and complex conjugate

Salvador Dali, “Gala Contemplating the Mediterranean Sea, which at 30 meters becomes the portrait of Abraham Lincoln”, 1976 Salvador Dali “Gala Contemplating the Mediterranean Sea, which at 30 meters becomes the portrait of Abraham Lincoln”, 1976

A nice set of basis This change of basis has a special name… Teases away fast vs. slow changes in the image.

Jean Baptiste Joseph Fourier ( ) had crazy idea (1807): Any univariate function can be rewritten as a weighted sum of sines and cosines of different frequencies. Don’t believe it? –Neither did Lagrange, Laplace, Poisson and other big wigs –Not translated into English until 1878! But it’s (mostly) true! –called Fourier Series –there are some subtle restrictions...the manner in which the author arrives at these equations is not exempt of difficulties and...his analysis to integrate them still leaves something to be desired on the score of generality and even rigour. Laplace Lagrange Legendre

A sum of sines Our building block: Add enough of them to get any signal f(x) you want!

Frequency Spectra example : g(t) = sin(2πf t) + (1/3)sin(2π(3f) t) = +

Frequency Spectra

= + =

= + =

= + =

= + =

= + =

=

Fourier basis for image analysis Intensity Image Frequency Spectra

Signals can be composed += More:

Fourier Transform Fourier transform stores the magnitude and phase at each frequency –Magnitude encodes how much signal there is at a particular frequency –Phase encodes spatial information (indirectly) –For mathematical convenience, this is often notated in terms of real and complex numbers Amplitude: Euler’s formula: Phase:

Computing the Fourier Transform Continuous Discrete k = -N/2..N/2 Fast Fourier Transform (FFT): NlogN

Fourier Transform pairs

Phase and Magnitude Fourier transform of a real function is complex –difficult to plot, visualize –instead, we can think of the phase and magnitude of the transform Phase is the phase of the complex transform Magnitude is the magnitude of the complex transform Curious fact – all natural images have about the same magnitude transform – hence, phase seems to matter, but magnitude largely doesn’t Demonstration – Take two pictures, swap the phase transforms, compute the inverse - what does the result look like?

This is the magnitude transform of the cheetah pic

This is the phase transform of the cheetah pic

This is the magnitude transform of the zebra pic

This is the phase transform of the zebra pic

Reconstructio n with zebra phase, cheetah magnitude

Reconstruction with cheetah phase, zebra magnitude

The Convolution Theorem The Fourier transform of the convolution of two functions is the product of their Fourier transforms The inverse Fourier transform of the product of two Fourier transforms is the convolution of the two inverse Fourier transforms Convolution in spatial domain is equivalent to multiplication in frequency domain!

Properties of Fourier Transforms Linearity Fourier transform of a real signal is symmetric about the origin The energy of the signal is the same as the energy of its Fourier transform See Szeliski Book (3.4)

Filtering in spatial domain * =

Filtering in frequency domain FFT Inverse FFT =

Play with FFT in Matlab Filtering with fft Displaying with fft im =... % “im” should be a gray-scale floating point image [imh, imw] = size(im); fftsize = 1024; % should be order of 2 (for speed) and include padding im_fft = fft2(im, fftsize, fftsize); % 1) fft im with padding hs = 50; % filter half-size fil = fspecial('gaussian', hs*2+1, 10); fil_fft = fft2(fil, fftsize, fftsize); % 2) fft fil, pad to same size as image im_fil_fft = im_fft.* fil_fft; % 3) multiply fft images im_fil = ifft2(im_fil_fft); % 4) inverse fft2 im_fil = im_fil(1+hs:size(im,1)+hs, 1+hs:size(im, 2)+hs); % 5) remove padding figure(1), imagesc(log(abs(fftshift(im_fft)))), axis image, colormap jet

Convolution versus FFT 1-d FFT: O(NlogN) computation time, where N is number of samples. 2-d FFT: 2N(NlogN), where N is number of pixels on a side Convolution: K N 2, where K is number of samples in kernel Say N=2 10, K= d FFT: , while convolution gives

Why is the Fourier domain particularly useful? It tells us the effect of linear convolutions. There is a fast algorithm for performing the DFT, allowing for efficient signal filtering. The Fourier domain offers an alternative domain for understanding and manipulating the image.

Analysis of our simple filters original 0 Pixel offset coefficient 1.0 Filtered (no change) constant

Analysis of our simple filters 0 Pixel offset coefficient original 1.0 shifted Constant magnitude, linearly shifted phase

Analysis of our simple filters 0 Pixel offset coefficient original 0.3 blurred Low-pass filter 0 1.0

Analysis of our simple filters original sharpened high-pass filter

Playing with the DFT of an image

Can change spectrum, then reconstruct

Low and High Pass filtering

Why does the Gaussian give a nice smooth image, but the square filter give edgy artifacts? GaussianBox filter

Gaussian Filter

Box Filter

Overview Frequency domain analysis Sampling and reconstruction

Sampling and Reconstruction

Sampled representations How to store and compute with continuous functions? Common scheme for representation: samples –write down the function’s values at many points [FvDFH fig.14.14b / Wolberg]

Reconstruction Making samples back into a continuous function –for output (need realizable method) –for analysis or processing (need mathematical method) –amounts to “guessing” what the function did in between [FvDFH fig.14.14b / Wolberg]

1D Example: Audio lowhigh frequencies

Sampling in digital audio Recording: sound to analog to samples to disc Playback: disc to samples to analog to sound again –how can we be sure we are filling in the gaps correctly?

Sampling and Reconstruction Simple example: a sign wave

Undersampling What if we “missed” things between the samples? Simple example: undersampling a sine wave –unsurprising result: information is lost

Undersampling What if we “missed” things between the samples? Simple example: undersampling a sine wave –unsurprising result: information is lost –surprising result: indistinguishable from lower frequency

Undersampling What if we “missed” things between the samples? Simple example: undersampling a sine wave –unsurprising result: information is lost –surprising result: indistinguishable from lower frequency –also was always indistinguishable from higher frequencies –aliasing: signals “traveling in disguise” as other frequencies

Aliasing in video

Aliasing in images

What’s happening? Input signal: x = 0:.05:5; imagesc(sin((2.^x).*x)) Plot as image: Alias! Not enough samples

Fourier Transform of a Sampled Signal Sampling period T T 2T 3T … -F 0 F … Sampling frequency F = 1/T

Fourier Transform of a Sampled Signal Sampling period T T 2T 3T … -2F -F 0 F 2F … Sampling frequency F = 1/T

When sampling a signal at discrete intervals, the sampling frequency must be F > 2 x f max f max = max frequency of the input signal This will allow to reconstruct the original perfectly from the sampled version Do not know f max or cannot sample at that rate? Prefiltering! We lose something but still better than aliasing!!!!! good bad vvv Nyquist-Shannon Sampling Theorem

Image half- sizing This image is too big to fit on the screen. How can we reduce it? How to generate a half- sized version?

Image sub-sampling Throw away every other row and column to create a 1/2 size image - called image sub-sampling 1/4 1/8

Image sub-sampling 1/4 (2x zoom) 1/8 (4x zoom) Aliasing! What do we do? 1/2

Gaussian (lowpass) pre-filtering G 1/4 G 1/8 Gaussian 1/2 Solution: filter the image, then subsample Filter size should double for each ½ size reduction. Why?

Subsampling with Gaussian pre-filtering G 1/4G 1/8Gaussian 1/2

Compare with... 1/4 (2x zoom) 1/8 (4x zoom) 1/2

Algorithm for downsampling by factor of 2 1.Start with image(h, w) 2.Apply low-pass filter im_blur = imfilter(image, fspecial(‘gaussian’, 7, 1)) 3.Sample every other pixel im_small = im_blur(1:2:end, 1:2:end);

Slide Credits This set of sides also contains contributions kindly made available by the following authors –Alexei Efros –Frédo Durand –Bill Freeman –Steve Seitz –Derek Hoiem –Steve Marschner