02/12/02 (c) 2002 university of wisconsin, cs 559 filters a filter is something that attenuates or...
TRANSCRIPT
02/12/02 (c) 2002 University of Wisconsin, CS 559
Filters
• A filter is something that attenuates or enhances particular frequencies
• Easiest to visualize in the frequency domain, where filtering is defined as multiplication:
• Here, F is the spectrum of the function, G is the spectrum of the filter, and H is the filtered function. Multiplication is point-wise
)()()( GFH
02/12/02 (c) 2002 University of Wisconsin, CS 559
Qualitative Filters
Function: F Filter: G
=
=
=
Result: H
Low-pass
High-pass
Band-pass
02/12/02 (c) 2002 University of Wisconsin, CS 559
Filtering in the Spatial Domain
• Filtering the spatial domain is achieved by convolution
• Qualitatively: Slide the filter to each position, x, then sum up the function multiplied by the filter at that position
duuxgufgfxh )()()(
02/12/02 (c) 2002 University of Wisconsin, CS 559
Filtering Images
• Work in the discrete spatial domain
• Convert the filter into a matrix, the filter mask
• Move the matrix over each point in the image, multiply the entries by the pixels below, then sum– eg 3x3 box filter
– averages
111
111
111
9
1
02/12/02 (c) 2002 University of Wisconsin, CS 559
Box Filter
• Box filters smooth by averaging neighbors• In frequency domain, keeps low frequencies and attenuates (reduces)
high frequencies, so clearly a low-pass filter
111
111
111
9
1
Spatial: Box Frequency: sinc
02/12/02 (c) 2002 University of Wisconsin, CS 559
Filtering Algorithm
• If Iinput is the input image, and Ioutput is the output image, M is the filter mask and k is the mask size:
• Care must taken at the boundary– Make the output image smaller
– Extend the input image in some way
2/
2/
2/
2/
]2/][2/[]][[]][[k
ki
k
kjinputoutput kjkiMjyixIyxI
02/12/02 (c) 2002 University of Wisconsin, CS 559
Bartlett Filter
• Triangle shaped filter in spatial domain
• In frequency domain, product of two box filters, so attenuates high frequencies more than a box
12321
24642
36963
24642
12321
81
1
Spatial: Triangle (BoxBox) Frequency: sinc2
02/12/02 (c) 2002 University of Wisconsin, CS 559
Constructing Masks: 1D
• Sample the filter function at matrix “pixels”• eg 2D Bartlett
• Can go to edge of pixel or middle of next: results are slightly different
0 1 2
1 3 11
5
1 2 11
4
02/12/02 (c) 2002 University of Wisconsin, CS 559
Constructing Masks: 2D
• Multiply 2 1D masks together using outer product
• M is 2D mask, m is 1D mask
][][]][[ jmimjiM 0.2 0.6 0.2
0.2
0.6
0.2
0.04 0.12 0.04
0.120.360.12
0.04 0.12 0.04
02/12/02 (c) 2002 University of Wisconsin, CS 559
Guassian Filter
• Attenuates high frequencies even further
• In 2d, rotationally symmetric, so fewer artifacts
-0. 02
0. 03
0. 08
0. 13
0. 18
-0. 02
0. 03
0. 08
0. 13
0. 18
2
2
2
1 x
e
14641
41624164
62436246
41624164
14641
256
1
02/12/02 (c) 2002 University of Wisconsin, CS 559
Constructing Gaussian Mask
• Use the binomial coefficients– Central Limit Theorem (probability) says that with more samples,
binomial converges to Gaussian
1 2 11
4
1 4 616
14 1
1 6 1564
120 15 6 1
02/12/02 (c) 2002 University of Wisconsin, CS 559
High-Pass Filters
• A high-pass filter can be obtained from a low-pass filter– If we subtract the smoothed image from the original, we must be
subtracting out the low frequencies
– What remains must contain only the high frequencies
• High-pass masks come from matrix subtraction:
• eg: 3x3 Bartlett
121
2122
121
16
1
121
242
121
16
1
000
010
000
02/12/02 (c) 2002 University of Wisconsin, CS 559
Edge Enhancement
• High-pass filters give high values at edges, low values in constant regions
• Adding high frequencies back into the image enhances edges
• One approach:– Image = Image + [Image – smooth(Image)]
Low-pass
High-pass
02/12/02 (c) 2002 University of Wisconsin, CS 559
Fixing Negative Values
• The negative values in high-pass filters can lead to negative image values– Most image formats don’t support this
• Solutions:– Truncate: Chop off values below min or above max
– Offset: Add a constant to move the min value to 0
– Re-scale: Rescale the image values to fill the range (0,max)
02/12/02 (c) 2002 University of Wisconsin, CS 559
Image Warping
• An image warp is a mapping from the points in one image to points in another
• f tells us where in the new image to put the data from x in the old image– Simple example: Translating warp, f(x) = x+o, shifts an image
)]([][ xx fII inout
02/12/02 (c) 2002 University of Wisconsin, CS 559
Reducing Image Size
• Warp function: f(x)=kx, k > 1
• Problem: More than one input pixel maps to each output pixel
• Solution: Filter down to smaller size– Apply the filter, but not at every pixel, only at desired output
locations
– eg: To get half image size, only apply filter at every second pixel
02/12/02 (c) 2002 University of Wisconsin, CS 559
Ideal Image Size Reduction
• Reconstruct original function using reconstruction filter
• Resample at new resolution (lower frequency)– Clearly demonstrates that shrinking removes detail
• Expensive, and not possible to do perfectly in the spatial domain