Notes 20110310 CIS 6320 Image Processing
From SnOwy - Ed's Wiki Notebook
Discrete FT (DFT) and IDFT (inverse)
Today, we talk about the 2D case
- in one dimension, we only need one integer
- M, N ::= are positive numbers;
- function ::= a total function from (0 .. M-1) × (0 .. N-1) into C
- for any u, v in 0 .. M-1;
- for any v, y in 0 .. N-1;
- in 1D ... Ku(x) = (1/M)exp(2jπux/M)
- in 2D ... Ku,v(x,y) = (1/(MN))exp(2jπ(ux/M+vy/N))
- in 1D ... F(F) = Σu=0M-1F(u)Lu (where F is curvy-F)
- F is a function -- the forward Fourier transform
- F is a function -- this will be set to an image when transforming images (pictures)
- F(u) is a complex number -- (the codomain of F -- the image of u in F)
- Ku -- kernel -- a function
- F(u)Ku -- this product is a function
- this is why F(F) can be assigned in this way
- what is the value at function F-1(F)(x) ?
- ::= &Sigmau=0M-1F(u)Ku(x)
- so let's define in two dimensions F-1(F) = Σu=0M-1Σv=0N-1F(u,v)Ku,v
- f | 0..M-1×0..N-1 → C // (x, y) |→ f(x, y)
- F | C0..M-1×0..N-1 → C0..M-1×0..N-1 // f |→ F(f) // F |→ F(F)
- recall last class -- we needed to recognize a geometric sequence and express it as a series (sum of sequence)
- 2D transform justification proof for bijection (use of F-1 notation) is derived from 1D transform proof
- important properties ...
- calculating the inverse Fourier transform ...
- F-1(F) = (1/(MN))F(F*)* (EXPRESSION 1)
- proof is the same as in 1D -- notice the difference is that in 1D, the result does not have 'N' in the denominator
- F is linear ..
- for any functions f1 and f2 for any complex number c ...
- F(cf1) = cF(f1) and F(f1 + f1) = F(f1) + F(f2)
- we can use EXPRESSION 1 to show that F-1 is also linear
- the extension CLEANUP
- F-hat | Z2 → C // (u,v) |→ Σx=0M-1</sup>Σy=0N-1 ...
- &forall(u,v) ∈ Z2, F-hat(u+M,v) = F-hat(u,v+N) = F-hat(u,v)
- we can prove this by substituting each u+M for M and v+N for N and using the properties of Euler's formula
- separability ...
- Ku,vM,N(x,y) = (1/(MN))exp(2yπ(ux/M+vy/N))
- let's use a different notation -- the kernel αM,N -- size M×N -- separable iff &exists; a kernel βM of size M and kernel γN of size N
- such that ... &forall(u,v),&forall(x,y),&alph;au,vM,N(x,y) = βuM(x)γvN(y)
- αM,N = KM,N
- Ku,vM,N(x,y) = (1/M)(exp(2yπux/M))(1/N)(exp(2yπvy/N))
- is the same as &alph;au,vM,N(x,y) = βuM(x)γvN(y)
- it turns out in our case, γ = β so we can stick with just the one symbol β
- the Fourier kernels are not only separable, they are also symmetric
- 2D transforms with separable kernels can be computed using 1D transforms
- these are important results because
- we only need to implement a single 1D forward Fourier transform
- we use EXPRESSION 1 to perform the IDT (inverse)
- and because of separability, we are capable of combining a collection of 1D DTs to create our higher dimension DTs
Separability Proof
We are using separability to prove we are able to use a 1D Fourier transform to get FTs of higher dimensions.
- F ::= FM,N(f)
- F is a specific curvy-F that operates only on functions whose domains are two dimensions in integers
- F(u,v) = Σx=0M-1(Σy=0N-1f(x,y)kyN(u))kxM(u)
- ... this is a rewriting of ...
- ΣΣf(x,y)kx,yM,N(u,v)
- ΣΣf(x,y)kxM(u)kyN(v)
- -- distributive property
- f(x,•) ::= y |→ f(x,y)
- notation f(x,•) means we are fixing the variable x
- domain is 0 .. N-1
- codomain is C
- Fx ::= FN(f(x,•)) -- there are M many of these in an M×N function
- F(u,v) = Σx=0M-1(...we must rewrite the inner sum...)kxM(u)
- we are only calculating the one dimensional Fourier transform -- we are holding x constant
- the inner sum is exactly the same as the 1D Fourier transform -- Fx(v)
- F(u,v) = Σx=0M-1Fx(v)kxM(a)
- we thus calculate M number of Fourier transforms -- this is half of the proof.
- the other half of the proof -- we need to hold v constant ....
- this is more difficult because we need to index specific values within the inner sum
- F•(v) ::= x |→ Fx(v)
- F(•,v) ::= FM(F•(v)) -- there are N many of these in an M×N function
- F(u,v) = F(•,v)(u)
- We thus need to calculate M+N transforms