02/12/02 (c) 2002 university of wisconsin, cs 559 filters a filter is something that attenuates or...

Post on 23-Dec-2015

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

Low-Pass Filtered Image

02/12/02 (c) 2002 University of Wisconsin, CS 559

High-Pass Filtered Image

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

Box Filter

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

Bartlett Filter

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

Gaussian Filter

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

High-Pass Filter

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

Edge-Enhance Filter

02/12/02 (c) 2002 University of Wisconsin, CS 559

Edge Enhancement

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

2D Reduction Example (Bartlett)

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

top related