fourier transforms - cornell university · fourier transform for 1d images •a 1d image with n...
TRANSCRIPT
Fourier Transforms
Fourier transform for 1D images
• A 1D image with N pixels is a vector of size N• Every basis has N pixels• There must be N basis elements• n-th element of k-th basis in standard basis
• !" # = % 1 '( ) = #0 +,ℎ./0'1.
• n-th element of k-th basis in Fourier basis• 2" # = .
345678
Fourier transform for 1D images
• Converting from standard basis to Fourier basis = Fourier transform• ! " = ∑%& ' ()
*+,-./
• Note that can be written as a matrix multiplication with X and x as vectors• ! = 0&
• Convert from Fourier basis to standard basis• & ' = ∑1! " (
*+,-./
Fourier transform
• Problem: basis is complex, but signal is real?• Combine a pair of conjugate basis elements
• !"#$ n = '()* +,- .
+ = '/012 #()*-.+ = '#
()*-.+ = !#$ 3
• Consider !#"/0 to !"/0 as basis elements• Real signals will have same coefficients for !$ and !#$
Visualizing the Fourier basis for 1D images
Signal Fourier transform
cosimpulse
impulse cos
Fourier transform for images
• Images are 2D arrays• Fourier basis for 1D array indexed by frequence• Fourier basis elements are indexed by 2 spatial frequencies• (i,j)th Fourier basis for N x N image• Has period N/i along x• Has period N/j along y
• !",$ %, & = ()*+,-. /)*+01.
= cos 267%8 + 26:&8 + ; sin (267%8 + 26:&8 )
Visualizing the Fourier basis for images!"," !$,%&
!"&,"!&,&
Visualizing the Fourier transform
• Given NxN image, there are NxN basis elements• Fourier coefficients can be represented as an NxN image
Converting to and from the Fourier basis
• Given an image f, Fourier coefficients F• How do we get f from F?• ! = ∑$,& ' (, ) *$,&• ! +, , = ∑$,& ' (, ) -.
/0123 4/0563
• “Inverse Fourier Transform”• How do we get F from f?• ' (, ) = ∑7,8 ! +, , -9.
/0123 4/0:563
• “Fourier Transform”
Why Fourier transforms?
• Think of image in terms of low and high frequency information• Low frequency: large scale structure, no details• High frequency: fine structure
Why Fourier transforms?
Why Fourier transforms?
Why Fourier transforms?
Removing high frequency components looks like blurring. Is there more to this relationship?
Dual domains
• Image: Spatial domain
• Fourier Transform: Frequency domain• Amplitudes are called spectrum
• For any transformations we do in spatial domain, there are corresponding transformations we can do in the frequency domain• And vice-versa
Spatial Domain
Dual domains
• Convolution in spatial domain = Point-wise multiplication in frequency domain
• Convolution in frequency domain = Point-wise multiplication in spatial domain
h = f ⇤ gH = FG
Signal Fourier transform
cosimpulse
impulse cos
Signal Fourier transform
box “sinc” = sin(x)/x
“sinc” = sin(x)/x box
Signal Fourier transform
Gaussian Gaussian
Signal Fourier transform
Gaussian Gaussian
Image Fourier transform
Image Fourier transform
Detour: Time complexity of convolution
• Image is w x h• Filter is k x k• Every entry takes O(k2) operations• Number of output entries:• (w+k-1)(h+k-1) for full• wh for same
• Total time complexity: • O(whk2)
Optimization: separable filters• basic alg. is O(r2): large filters get expensive fast!• definition: w(x,y) is separable if it can be written as:
• Write u as a k x 1 filter, and v as a 1 x k filter• Claim:
Separable filtersu1u2u3
v1 v2 v3*
u1u2u3
u3u2u1
u1v1
Separable filtersu1u2u3
v1 v2 v3*
u1u2u3
u3u2u1
u1v1 u1v2
Separable filtersu1u2u3
v1 v2 v3*
u1u2u3
u3u2u1
u1v1 u1v2 u1v3
Separable filtersu1u2u3
v1 v2 v3*
u1u2u3
u3u2u1
u1v1 u1v2 u1v3
u2v1
Separable filtersu1u2u3
v1 v2 v3*
u1u2u3
u3u2u1
u1v1 u1v2 u1v3
u2v1 u2v2
Separable filtersu1u2u3
v1 v2 v3*
u1u2u3
u3u2u1
u1v1 u1v2 u1v3
u2v1 u2v2 u2v3
Separable filtersu1u2u3
v1 v2 v3*
u1u2u3
u3u2u1
u1v1 u1v2 u1v3
u2v1 u2v2 u2v3
u3v1
Separable filtersu1u2u3
v1 v2 v3*
u1u2u3
u3u2u1
u1v1 u1v2 u1v3
u2v1 u2v2 u2v3
u3v1 u3v2
Separable filtersu1u2u3
v1 v2 v3*
u1u2u3
u3u2u1
u1v1 u1v2 u1v3
u2v1 u2v2 u2v3
u3v1 u3v2 u3v3
w
Separable filters
• Time complexity of original : O(whk2)• Time complexity of separable version : O(whk)