(New page: Due to scheduling conflicts, no recitation session on this topic was possible, however; to assist students in understanding Image Processing, this RHEA informational page was created. The...)
 
Line 1: Line 1:
 
Due to scheduling conflicts, no recitation session on this topic was possible, however; to assist students in understanding Image Processing, this RHEA informational page was created.  The material covered in this page covers topics presented in ECE438 lecture from 16-30 November.  This page attempts to present a very general overview of the image filtering process, an understanding of boundary conditions, and examples of linear and non-linear filters.
 
Due to scheduling conflicts, no recitation session on this topic was possible, however; to assist students in understanding Image Processing, this RHEA informational page was created.  The material covered in this page covers topics presented in ECE438 lecture from 16-30 November.  This page attempts to present a very general overview of the image filtering process, an understanding of boundary conditions, and examples of linear and non-linear filters.
 +
 +
  
 
Image Processing:
 
Image Processing:
Line 16: Line 18:
 
= ΣkΣl h_(k-m,l-n) f(k,l)
 
= ΣkΣl h_(k-m,l-n) f(k,l)
 
where h_(x,y) = h(-m,-n)
 
where h_(x,y) = h(-m,-n)
 +
  
  
Line 25: Line 28:
 
I J K L
 
I J K L
 
M N O P
 
M N O P
 
 
 
 
 
 
  
 
Several types of boundary conditions were discussed in lecture:
 
Several types of boundary conditions were discussed in lecture:
Line 61: Line 58:
 
2 4 2
 
2 4 2
 
1 2 1
 
1 2 1
¼
+
 
 +
¼   [¼ ½ ¼]
 
½
 
½
 
¼
 
¼
¼ ½ ¼
+
 
  
 
1/16 →     
 
1/16 →     
Line 76: Line 74:
  
 
H(u) = Σ h(k)e-jku
 
H(u) = Σ h(k)e-jku
= ¼ e-ju + ½ + ¼ e-ju  
+
        = ¼ e-ju + ½ + ¼ e-ju  
= ½(1 + cos(u))
+
        = ½(1 + cos(u))
  
  
 
Sobel Filter/Operator: detects edges in images.  This operator returns a large response across edges, and no response when image is constant.
 
Sobel Filter/Operator: detects edges in images.  This operator returns a large response across edges, and no response when image is constant.
  
-1 -1 -1
+
-1 -1 -1 /n
-1 8 -1
+
-1   8 -1 /n
-1 -1 -1
+
-1 -1 -1 /n
  
 
h[k,l] = 1/9
 
h[k,l] = 1/9

Revision as of 15:36, 19 December 2009

Due to scheduling conflicts, no recitation session on this topic was possible, however; to assist students in understanding Image Processing, this RHEA informational page was created. The material covered in this page covers topics presented in ECE438 lecture from 16-30 November. This page attempts to present a very general overview of the image filtering process, an understanding of boundary conditions, and examples of linear and non-linear filters.


Image Processing:

Image Filtering: process to sharpen or smooth image

f(m,n) → h(x,y) → g(m,n)

f(m,n) → input image h(x,y) → filter g(m,n) → filtered image

To calculate g(m,n) → h(m,n) ** f(m,n) = ΣmΣn h(k,l) f(m-k, n-l) = ΣkΣl h(m-k,n-l) f(k,l) = ΣkΣl h_(k-m,l-n) f(k,l) where h_(x,y) = h(-m,-n)


Boundary Conditions:

Given a grid of pixels below, we are interested in determining a value for pixel(L) using the surrounding pixel values: A B C D E F G H I J K L M N O P

Several types of boundary conditions were discussed in lecture: FREE → filter image based only on pixels: {H, K, P}

TOROIDAL → filter image based on three surrounding pixels, and pixel from across image in the same row as L: {H, K, P, I}

REFLECTIVE → reflect pixel from inside image to outside boundary: {H, K, P, K}

SYMMETRIC → repeat edge row of pixels as boundary pixels: {H, K, P, L}


Examples of Image Filters:

Average filter: smoothes/blurs noise and edges.

1 2 1 2 4 2 1 2 1

h[k,l] = 1/16



Note: the averaging filter is separable:

1 2 1 2 4 2 1 2 1

¼ [¼ ½ ¼] ½ ¼


1/16 →



Since the filter is separable, H(u,v) = H(u) H(v)

If we Fourier Transform the filter, we discover that the filter is linear:

H(u) = Σ h(k)e-jku = ¼ e-ju + ½ + ¼ e-ju = ½(1 + cos(u))


Sobel Filter/Operator: detects edges in images. This operator returns a large response across edges, and no response when image is constant.

-1 -1 -1 /n -1 8 -1 /n -1 -1 -1 /n

h[k,l] = 1/9



Sharpening, using an Unsharpmask:

y[m,n] = f[m,n] + λ (f[m,n] - <f[m,n]>)

the component: f[m,n] - <f[m,n]> will mask the image with neighborhood average of pixels to extract variations in image.

f[m,n] + λ (variations): will add variations to sharpen original image.

How to calculate h[k,l]:

<f[m,n]> = ΣkΣl f[m+k, n+l] / (2M+1)2

where (2M+1) is the window size of the sample

g[m,n] = f[m,n] + λ (f[m,n] - <f[m,n]>) = f[m,n] + λ ΣkΣl h’[k,l] f[m+k, n+l] = ΣkΣl (δ[k,l] + λh’[k,l]) f[m+k, n+l]

the term: (δ[k,l] + λh’[k,l]) represents the filter – h_[k,l]





-λ/N2 -λ/N2 -λ/N2 -λ/N2 1 + -λ(1-1/N2) -λ/N2 -λ/N2 -λ/N2 -λ/N2

h_[k,l] =




Non-Linear Image Filters: We cannot convolve non-linear filters. An example of a non-linear filter is a ‘Median Filter’.

g(m,n) = median{f[m+k, n+l]}

If we look at the following set of pixels, we can easily determine the median, but the filter is not separable and therefore not linear:

4 2 100 3 1 5 8 7 6


Partial Differential Equation based image processing:

Consider an image that evolves with time (τ).

I(x,y,τ), where I(x,y,0) = fc(x,y)

according to the differential equation;

δI / δτ = δ2I / dx2 + δ2I / δy2

the solution for the evolved image is:

I(x,y,τ) = fc(x,y) ** (1/4πτ) e (–x2+y2/4τ)

and h(x,y) = (1/4πτ) e (–x2+y2/4τ)

further, we could discretize the equation to arrive at a linear time-invariant system




Perona-Malik Filter:

The Perona-Malik Filter attempts to remove image noise while not removing any significant parts of the image content:

a Perona-Malik Filter can be defined by the following function:

g[m,n] = f[m,n] + λ {ψ(f[m-1,n] – f[m,n]) + ψ(f[m+1,n] – f[m,n]) + ψ(f[m,n-1] – f[m,n]) + ψ(f[m,n+1] – f[m,n])}

examining the above equation, it is possible to determine that if no feature edge exists in the window then all Δf values will be small, and thus, ψΔf ~ Δf

in this case, the above equation can be rewritten as:

g[m,n] = f[m,n] + λ {f[m-1,n] + f[m+1,n] +f[m,n-1] + f[m,n+1] – f[m,n])}

which is simply an averaging filter.

however; if an edge is present, one (or more) Δf values will be large, and for large Δf, ψΔf ~ Δf . in this case, will resemble the average filter, but with one of the edge values equal to 0.

Alumni Liaison

Questions/answers with a recent ECE grad

Ryne Rayburn