Proc Imagini

Download as pdf or txt
Download as pdf or txt
You are on page 1of 54

Overview

Images Pixel Filters

Neighborhood Filters Dithering


Image as a Function
• We can think of an image as a function, f,
• f: R2  R
– f (x, y) gives the intensity at position (x, y)
– Realistically, we expect the image only to be
defined over a rectangle, with a finite range:
• f: [a,b]x[c,d]  [0,1]

• A color image is just three functions pasted


together. We can write this as a “vector-
valued” function:  r ( x, y ) 
f ( x, y )   g ( x, y ) 
 
 b( x, y ) 
Image as a Function
Image Processing

• Define a new image g in terms of an existing


image f
– We can transform either the domain or the range of f
• Range transformation:

What kinds of operations can this perform?


Image Processing

• Some operations preserve the range but change


the domain of f :

What kinds of operations can this perform?

• Still other operations operate on both the


domain and the range of f .
Point Operations
Point Processing
Nonlinear Lower
Original Darken Lower Contrast Contrast

Nonlinear Raise
Invert Lighten Raise Contrast Contrast
Point Processing
Nonlinear Lower
Original Darken Lower Contrast Contrast

x x - 128 x/2 ((x / 255.0) ^ 0.33) * 255.0

Nonlinear Raise
Invert Lighten Raise Contrast Contrast

255 - x x + 128 x*2 ((x / 255.0) ^2) * 255.0


Gamma correction
Monitors have a intensity to voltage response curve which is roughly a 2.5 power function
Send v  actually display a pixel which has intensity equal to v2.5

= 1.0; f(v) = v = 2.5; f(v) = v1/2.5 = v0.4


Neighborhood Operations
Convolution

0.2 0.1 -1.0


0.3 0.0 0.9
0.1 0.3 -1.0
Properties of Convolution

• Commutative
a b  b  a
• Associative

a  b c  a  b  c
• Cascade system

f h1 h2 g

 f h1  h2 g

 f h2  h1 g
Convolution
Convolution is linear and shift invariant


g x    f  hx   d g  f h


f  

x 
h  h  

kernel h
 
Convolution - Example

f
g
f g
Eric Weinstein’s Math World
Convolution - Example

a x  b x 
1 1

-1 1 -1 1

c  a b
c x 
1

-2 -1 1 2
Point Spread Function

Optical
scene System
image

• Ideally, the optical system should be a Dirac delta function.

• However, optical systems are never ideal.

 x  Optical
System
PSF x 
point source point spread function

• Point spread function of Human Eyes


Point Spread Function

normal vision myopia hyperopia

astigmatism
Images by Richmond Eye Ass
Original Image
Blurred Image
Gaussian Smoothing

by Charles Allen Gillbert by Harmon & Julesz

http://www.michaelbach.de/ot/cog_blureffects
Gaussian Smoothing

http://www.michaelbach.de/ot/cog_blureffects
Original Image
Sharpened Image
Sharpened Image
Original Image
Noise
Blurred Noise
Median Filter
• Smoothing is averaging (a)

(a) Blurs edges


(b) Sensitive to outliers (b)

• Median filtering
– Sort N 2  1 values around the pixel
– Select middle value (median)

sort median

– Non-linear (Cannot be implemented with convolution)


Median Filter

Can this be described as a convolution?


Original Image
Example: Noise Reduction

Image with noise Median filter (5x5)


Salt and pepper noise Gaussian noise

3x3

5x5

7x7
Example: Noise Reduction

Original image Image with noise Median filter (5x5)


Original Image
X-Edge Detection
Y-Edge Detection
General Edge Detection

Can this be described as a convolution?


Image Processing

• Some operations preserve the range but change


the domain of f :

What kinds of operations can this perform?

• Still other operations operate on both the


domain and the range of f .
Image Scaling

This image is too big to


fit on the screen. How
can we reduce it?

How to generate a half-


sized version?
Image Sub-Sampling

1/8
1/4

Throw away every other row and


column to create a 1/2 size image
- called image sub-sampling
Image Sub-Sampling

1/2 1/4 (2x zoom) 1/8 (4x zoom)


Good and Bad Sampling

Good sampling:
•Sample often or,
•Sample wisely

Bad sampling:
•see aliasing in action!
Aliasing
Alias: n., an assumed name
Input signal:

Matlab output:
Picket fence receding
into the distance will
produce aliasing…

WHY? x = 0:.05:5; imagesc(sin((2.^x).*x))

Alias!

Not enough samples


Really bad in video
Sub-Sampling with Gaussian Pre-Filtering

G 1/8
G 1/4

Gaussian 1/2
• Solution: filter the image, then subsample
– Filter size should double for each ½ size reduction. Why?
Sub-Sampling with Gaussian Pre-Filtering

Gaussian 1/2 G 1/4 G 1/8


Compare with...

1/2 1/4 (2x zoom) 1/8 (4x zoom)


Canon D60 (w/ anti-alias filter) Sigma SD9 (w/o anti-alias filter)

From Rick Matthews website, images by Dave Etchells


Figure from David Forsyth
Original Image
Warped Image
Warped Image

+ =

orig vector field warped

how?
Advection (just like a fluid)

You might also like