Image (and Video) Processing and Coding Lecture 1: Class

advertisement
Image (and Video) Coding and
Processing
Lecture 5: Point Operations
Wade Trappe
Lecture Overview

Today’s lecture will focus on:
– Point-Operations: These are operations that basically do not
involve any explicit spatial memory
– Examples:




Contrast stretching
Noise Clipping
Histogram Equalization
Note: Most of this talk is borrowed from a lecture by my colleague Min Wu at UMD
Point Operations / Intensity Transform
v
Basic idea
– “Zero memory” operation

each output only depend on the
input intensity at the point
– Map a given gray or color level u
to a new level v, i.e. v = f ( u )
output gray level

– Doesn’t bring in new info.
input gray level
u
– But can improve visual appearance or make features easier to detect

Example-1: Color coordinate transformations
– RGB of each pixel  luminance + chrominance components  etc.

Example-2: Scalar quantization
– quantize pixel luminance/color with fewer bits
Gamma Characteristics & Gamma
Correction

Non-linearity in CRT display
L’

L’ = a U
– Voltage U vs. Displayed luminance L’

 L’ ~ U
where  = 2.0 ~ 2.5

Use preprocessing to compensate -distortion
– U~L
1/ 
U
– log(L) gives similar compensation curve to correction

~ logL
1/
~L
good for many practical applications
– Camera may have L
with c = 1.0-1.7

U
1/c
capturing distortion
Power-law transformations are also useful for
general purpose contrast manipulation
L
Typical Types of Gray-level Transformation
Figure is from slides at Gonzalez/ Woods DIP book website (Chapter 3)
Example: Negative Transformation
Figure is from slides at Gonzalez/ Woods DIP book website (Chapter 3)
Example: Log Transformation
Figure is from slides at Gonzalez/ Woods DIP book website (Chapter 3)
Example: Effects of Different Gammas
L0
( “vectors” sample image
from Matlab )
L02.2
L01/2.2
Luminance Histogram

Represents the relative frequency of occurrence of the various
gray levels in the image
– For each gray level, count the # of pixels having that level
– Can group nearby levels to form a big bin & count #pixels in it
( From Matlab Image Toolbox Guide Fig.10-4 )
Luminance Histogram (cont’d)

Interpretation
– Treat pixel values as i.i.d random variables
– Histogram is an estimate of the probability distribution of the r.v.

“Unbalanced” histogram doesn’t fully utilize the dynamic range
– Low contrast image ~ histogram concentrating in a narrow
luminance range
– Under-exposed image ~ histogram concentrating on the dark side
– Over-exposed image ~ histogram concentrating on the bright side

Balanced histogram gives more pleasant look and reveals rich
content
Example: Balanced and Unbalanced
Histograms
Figure is from slides at Gonzalez/ Woods DIP book website (Chapter 3)
Contrast Stretching for Low-Contrast
Images
Stretch the over-concentrated graylevels in histogram via a
nonlinear mapping
– Piece-wise linear stretching function
– Assign slopes of the stretching region to be greater than 1
v
output gray level

o



a
b
input gray level
u
Contrast Stretching: Example
original
stretched
Clipping & Thresholding
– Special case of contrast stretching with
==0
– Useful for noise reduction when
interested signal
mostly lie in range [a,b]

Thresholding
– Special case of clipping with a = b = T
– Useful for binarization of scanned binary
images

documents, signatures, fingerprints
output gray level
Clipping
o

a
b
input gray level
u
v
output gray level

v
o
T
input gray level
u
Examples of Histogram Equalization
( From Matlab Image
Toolbox Guide
Fig.10-10 & 10-11 )
Equalization Example (cont’d)
original
equalized
Histogram Equalization

Goal: Map the luminance of each pixel to a new value such that the
output image has approximately uniform distribution of gray levels

To find what mapping to use: first model pixels as i.i.d. r.v.
– How to generate r.v. with desired distribution?  Match c.d.f

Want to transform one r.v. with certain p.d.f. to a new r.v. with
uniform p.d.f.
– For r.v. U with continuous p.d.f. over [0,1], construct a new r.v. V by
a monotonically increasing mapping v(u) such that
u
v  FU (u)  P[U  u]   pU ( x)dx
0
– Can show V is uniformly distributed over [0,1]  FV(v) = v

FV(v) = P(V v) = P( FU(u) v)
= P( U  F-1U(v) ) = FU( F-1U(v) ) = v
– For u in discrete prob. distribution, the output v will be approximately
uniform
How to Do Histogram Equalization?
Approach: map input luminance u to the corresponding v
– v will be approximately uniform for u with discrete prob. distribution
b/c all pixels in one bin are mapped to a new bin (no splitting)

P(V<=v)
P(U<=u)
1
1
Fu0 
c.d.f
c.d.f
Fu0 

u0 
o
gray level
v0
255 u
o
gray level
255 v
Histogram Equalization Algorithm
v   pU ( xi )
u
v
xi  u
Uniform
quantization
v’
pU(xi)
pU ( xi ) 
h( xi )
L 1
 h( x )
i 0
for i  0, ..., L - 1
i
v   pU ( xi )
xi  u
 v  vmin

v'  Round 
( L  1)
 1  vmin

v [0,1]
• Map discrete v [0,1] to
v’ {0,…,L-1}
• vmin is the smallest
positive value of v
• vmin  0
1  L-1
Histogram Equalization: A Mini-Example
– xi
0
1
2
3
4
5
6
7
– p(xi) 0.1
0.2
0.4
0.15
0.1
0.05
0
0
– v
0.1
0.3
0.7
0.85
0.95
1.0
1.0
1.0
– v’
0
[1.5] [4.7] [5.8]
[6.6]
7
7
7
7
7
7
7
0
2
5
6
(L=8)
(L-1)/(1-vmin) = 7.78
Summary: Contrast Stretching vs. Histogram
Eq.
What are in common?

What are different?
v
output gray level




o
P(V<=v)
b
input gray level
u
P(U<=u)
1
1
Fu0 
c.d.f
c.d.f
Fu0 

u0 
v0
o
a
gray level
255 v
o
gray level
255 u
Generalization of Histogram Equalization

Histogram specification
– Want output v with specified p.d.f. pV(v)
– Use uniformly distributed r.v. W as an
intermediate step
-1
 W = FU(u) = FV(v)  V = F V (FU(u)
)
– Approximation in the intermediate step
needed for discrete r.v.
 W1 = FU(u) , W2 = FV(v)  take v
s.t. its w2 is equal to or just above
w1
Figure is from slides at Gonzalez/
Woods DIP book website (Chapter 3)
For Next Time…

Next time we will focus on quantization
Download