View
216
Download
1
Category
Preview:
DESCRIPTION
Spatial
Citation preview
1
Image Enhancement(Spatial Domain Filters)
Spatial Domain• Spatial Filtering
– (As opposed to frequency domain filter)– For linear filters
• Foundation based on the convolution theorem– g(x,y) = h(x,y)*f(x,y)– G(u,v) = H(u,v)F(u,v)
• Goal is to either remove, or isolate frequencies in the image
• Types– Linear– Non-linear
2
Response of a linear mask
R = w1z1 + w2z2 + w3z3 ... + w9z9
Where wi are mask coefficients and zi are pixelintensities.
• Neighborhood operators– Convolution
Spatial Filtering using a Mask
Response of a linear mask, R, 9
R = ( w1z1 + w2z2 + w3z3 ... + w9z9) = ∑ wizi1
f(x,y) is centered around “z5” so g(x,y) = R =filter_about*f(x,y)
z1 z2 z3z4 z5 z6z7 z8 z9
w1 w2 w3w4 w5 w6w7 w8 w9
3
Smoothing Filters
• Smoothing Filters– blurring
• “pre-processing”– removal of small details before object extraction
– noise reduction• removal of noise in an image
• Often called “Low-Pass” Filters– Filter lets low-frequencies pass – Stops high-frequencies
Low-pass spatial filtering
Frequency Domain Spatial Domain
0 0
1
4
Low-pass spatial filtering
w1 w2 w3w4 w5 w6w7 w8 w9
•We can build a gaussian filter
•But, only requirement fora low-pass filter is that wi be positive
•Note, that the result can belarger than the valid output range(L-1)
•Can pre-scale the filter
scale_factor = (Σ wi )-1
Low-pass spatial filter
1 1 11 1 11 1 1
1/9 *
Average Filter
1 1 11 1 11 1 1
1/9 *
5
Extends to larger filters
1 1 11 1 11 1 1
1/9 *
1 1 11 1 11 1 1
1 1 11 1 11 1 1
1 1 11 1 11 1 1
1 1 11 1 11 1 1
1 1 11 1 11 1 1
1 1 11 1 11 1 1
1 1 11 1 11 1 1
1 1 11 1 11 1 1
1 1 11 1 11 1 1
1/81 *
Example
original n=5 (nxn mask)
n=25 (nxn mask)n=15 (nxn mask)
6
Other arrangements
1 1 1
1 2 1
1 1 1
Gaussian1111112321134311232111111
Weighted
Remember that the resulting gray-levelsmay be out of the range of the original image.
Isotropic Gaussian Filter
2
22
222
1),( σ
πσ
yx
eyxG+
−=
2D Gaussian distributionwith mean (0,0) and σ=1
7
Computing a discrete gaussian mask
2
22
222
1),( σ
πσ
yx
eyxG+
−=
2 10
-1-2
210-1-2
Center the Mask at (0,0). So, a 5x5 mask would compute values by at:
Use G(x,y) to computevalues for mask.
Often scaled by Max-GrayLevel; ie, 255*G(x,y)
Computing a discrete gaussian mask2
22
222
1),( σ
πσ
yx
eyxG+
−=
8
Linear vs. Non-linear• “Convolution”/Linear Filters
– Linear operation– Have corresponding frequency domain filter
• Non-linear Filters– Mask used to determine the proper substitution
of a “good” pixel value– Examine neighbors using various orderings
• Often use Rank or Order Statistics – Harder to interpret effect in frequency domain
Selected Smoothing
• (non-linear filter)• kth nearest neighbors
2 3 8
3 10
4 2 9
Find the kth nearest neighborsof (x,y) in a neighborhood nxn
k = 6nearest neighbors = {2,3,3,4,4,2}(x,y) = (2+3+3+4+4+2} * (1/6) = 3
Note: Straight Averaging would have equaled 5
pixel values about (x,y)window 3x3
4
9
Max Homogeneity Smoothing• non-linear• Use 5 different windows with f(x,y)
included in all of them
Max Homogeneity Smoothing• Compute the gradient of each of these
“windows”• f(x,y) is the average of the window
with the smallest “variation”
10
Max Homogeneity Smoothing• This filter is trying to find the
window that (x,y) is the most similar too.
?
Median Filter• Very popular non-linear filter• Find the median of the window• Preserves edges• Removes impulse noise, avoids excessive smoothing
2 3 8
3 10
4 2 9
4
pixel values about (x,y)window 3x3
neighbor sort = {2,2,3,3,4,4,8,9,10}
f(x,y) = median
11
Example
Original Noisy Image
Low-Pass Filter Median Filter
Median Filter
• Often referred to as “de-speckle operation”
• It converges– That is, if you perform it over and over,
eventually the image will not change.
12
Iterative Smoothing
• Local Averaging– Converges to an image with constant intensity
• Max-homogeneity and K-nearest– converges to a constant intensity or a piecewise
constant intensity• Median Filter
– Converges to an image invariant to the filter
Sharpening• Objective of sharpening
– Highlight fine detail in an image– Enhance detail that has been blurred– We can think of this as high-pass
filtering• Letting High Frequencies Pass• Removing Low Frequencies
13
High-pass spatial filtering
Frequency Domain Spatial Domain
0 0
1
Basic hi-pass spatial filter
-1 -1 -1
-1 8 -1
-1 -1 -1
1/9 *
•Positive coefficients near its center
•Negative coefficients near the outerperiphery
•Note, the sum of the coefficients iszero
•Thus, when the mask is over anarea of constant intensity, the resultis zero
14
Hi-pass filter
• The results may be negative
• You’ll need to scale and/or clip so that the gray levels of the result span [0, L-1]
• Don’t take absolute value of the response– Bad idea
Example
Original High-Pass
15
High Pass filter
• Another way to think about the high pass filter:
– Highpass = Original – Lowpass
• Should be able to prove this using thelinear ‘R’ response equality and examplesof high-pass and low-pass filters
High Boost Filter
• High Boost = (A)(Original) – Lowpass= (A-1)(Original) + Original - Lowpass= (A-1)Original + Highpass
• Setting ‘A’ controls how much of the original image you would like to have show up in the result
• A=1 gives you the high-pass filter• A > 1 allows some of the low-frequencies back in
– Result, an image that looks more like the original with accents on the high-frequencies
16
Constructing a High Boost Filter
-1 -1 -1
-1 w -1
-1 -1 -1
1/9 * w = 9A-1
Examples
Original A=1.1
A=1.15 A=1.2
17
Derivative Filters
• Averaging pixels– blur– analogous to integration
• Differentiation– has the opposite effect of “blurring”– sharpens an image
First Order Derivatives • Gradient• Function of 2 variables x, y
⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢
⎣
⎡
∂∂
∂∂
=∇
yf
xf
f
x
y
18
First Order Derivatives
• For each (x,y) you are storing two values:
• Often have two images to represent this• X-Gradient and Y-Gradient
– Can be computed independently
⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢
⎣
⎡
∂∂
∂∂
=∇
yf
xf
f
First Order Derivatives • X-Gradient and Y-Gradient
Original df/dy
df/dx f
19
Gradient
• Gradient Magnitude
2/122
yf
xff)(mag
⎥⎥⎦
⎤
⎢⎢⎣
⎡⎟⎟⎠
⎞⎜⎜⎝
⎛∂∂
+⎟⎠⎞
⎜⎝⎛
∂∂
=∇=∇f
Gradient
• Gradient Angle/Direction
⎟⎠⎞
⎜⎝⎛
∂∂∂∂
=∇Ψ − xf/yf/tan)( 1f
Note: the angle is with respect to the “x” image axis
20
Basic Derivative
• Consider the pixels
• f at z5 can be computed
z1 z2 z3z4 z5 z6z7 z8 z9
2/1285
265 ])()[( zzzzf −+−≈∇
Basic Derivative
• Consider the pixels
• f at z5 can be computed quicker
z1 z2 z3z4 z5 z6z7 z8 z9
|||| 8565 zzzzf −+−≈∇
21
Basic Derivative
• f sometimes is computed using the “cross” difference
z1 z2 z3z4 z5 z6z7 z8 z9
|||| 9586 zzzzf −+−≈∇
Robert Gradient
• Roberts cross-gradient operators
-10
01
0-1
10
Even masks are awkward to implementResults in a phase-shift
22
Odd Sized Masks
|)()(|
|)()(|
741963
321987
zzzzzz
zzzzzzf
++−++
+++−++≈∇
• Difference between first and third row (df/dy)
• Difference between first and third column(df/dx)
Odd sized mask
• Prewitt operator
111
000
-1-1-1
10-1
10-1
10-1
23
Odd sized mask
• Sobel operator
• Weights closer neighbor a little more
121
000
-1-2-1
10-1
20-2
10-1
Requirements for Derivative Mask
• Measuring Change– df/dx = A*f(x,y) – B* f(x+1,y)– df/dy = A*f(x,y) – B*f(x,y+1)
• Derivative– Sum of the coefficients has to be zero
• This makes sure the derivative is zero in a region of constant intensity
24
Example
Second Order Derivative
• Laplacian of a 2-D function f(x,y)• is a second-order derivative defined
as:
yf
xf f 2
2
2
22
∂∂
+∂∂
=∇
25
Second Order Derivative • For a 3x3 region, the form most
encountered is:
• Requirements – Center pixel coefficient be positive– Outer coefficients be negative– Its a derivative, so sum of coefficient be zero
)(4 864252 zzzzzf +++−≈∇
Example of a Laplacian
• Typical Laplacian Operator(not used in practice)
0-10
-14-1
0-10
26
Example
This is actually an example of a mask which is a Laplacian of a Gaussian (LoG Filter)See pp 582 of GW
Spatial Filters• Spatial Convolution
– We are convolving a function about each (x,y)– approximation of filters in the frequency domain
(at least for the linear filters . . non-linear is hard to analyze)– types
• Blurring, Smoothing, Sharpening, Derivatives• and the non-linear (Max Homogeneity, Kth Nearest, Median)
• Input gray-levels may be different than output levels– very common– May need to scale your image for visualization
• Filter coefficients do not have to be integers– Results are non-integer – use a float image
Recommended