2. Most of these slides base on the
book
Digital Image Processing
by Gonzales/Woods
Chapter 3
3. Introduction
Image Enhancement ?
• enhance otherwise hidden information
• Filter important image features
• Discard unimportant image features
Spatial Domain ?
• Refers to the image plane (the ‘natural’
image)
• Direct image manipulation
4. Remember ?
A 2D grayvalue - image is a 2D -> 1D
function,
v = f(x,y)
5. Remember ?
As we have a function, we can apply
operators to this function, e.g.
T(f(x,y)) = f(x,y) / 2
Operator Image (= function !)
6. Remember ?
T transforms the given image f(x,y)
into another image g(x,y)
f(x,y) g(x,y)
7. Spatial Domain
The operator T can be defined over
• The set of pixels (x,y) of the image
• The set of ‘neighborhoods’ N(x,y) of
each pixel
• A set of images f1,f2,f3,…
8. Spatial Domain
Operation on the set of image-pixels
6 8 2 0 3 4 1 0
12 200 20 10 6 100 10 5
(Operator: Div. by 2)
9. Spatial Domain
Operation on the set of ‘neighborhoods’
N(x,y) of each pixel
6 8 (Operator: sum)
12 200
6 8 2 0 226
12 200 20 10
10. Spatial Domain
Operation on a set of images f1,f2,…
6 8 2 0
12 200 20 10
(Operator: sum) 11 13 3 0
14 220 23 14
5 5 1 0
2 20 3 4
11. Spatial Domain
Operation on the set of image-pixels
Remark: these operations can also be seen as operations on the
neighborhood of a pixel (x,y), by defining the neighborhood as the
pixel itself.
• The simplest case of operators
• g(x,y) = T(f(x,y)) depends only on the value
of f at (x,y)
• T is called a
gray-level or intensity transformation
function
12. Transformations
Basic Gray Level Transformations
• Image Negatives
• Log Transformations
• Power Law Transformations
• Piecewise-Linear Transformation
Functions
For the following slides L denotes the max. possible gray value of the
image, i.e. f(x,y) ∈ [0,L]
22. Piecewise Linear Transformations
Thresholding Function
g(x,y) = L if f(x,y) > t,
0 else
t = ‘threshold level’
Output gray level
Input gray level
23. Piecewise Linear Transformations
Gray Level Slicing
Purpose: Highlight a specific range of grayvalues
Two approaches:
7. Display high value for range of interest, low value
else (‘discard background’)
9. Display high value for range of interest, original
value else (‘preserve background’)
27. Piecewise Linear Transformations
Exercise:
• How does the transformation
function look for bitplanes
0,1,… ?
• What is the easiest way to filter a single bitplane
(e.g. in MATLAB) ?
28. Histograms
Histogram Processing
1 4 5 0
3 1 5 1
Number of Pixels
gray level
29. Histograms
Histogram Equalization:
• Preprocessing technique to
enhance contrast in ‘natural’
images
• Target: find gray level
transformation function T to
transform image f such that the
histogram of T(f) is ‘equalized’
30. Histogram Equalization
Equalized Histogram:
The image consists of an equal
number of pixels for every gray-
value, the histogram is constant !
32. Histogram Equalization
Target:
Find a transformation T to transform the
grayvalues g1∈[0..1] of an image I to
grayvalues g2 = T(g1) such that the
histogram is equalized, i.e. there’s an
equal amount of pixels for each grayvalue.
Observation (continous model !):
Assumption: Total image area = 1 (normalized). Then:
The area(!) of pixels of the transformed
image in the gray-value range 0..g2 equals
the gray-value g2.
33. Histogram Equalization
The area(!) of pixels of the transformed image in the gray-
value range 0..g2 equals the gray-value g2.
⇒ Every g1 is transformed to a grayvalue
that equals the area (discrete: number of
pixels) in the image covered by pixels
having gray-values from 0 to g1.
⇒ The transformation T function t is the
area- integral: T: g2 = ∫ 0..g1 I da
34. Histogram Equalization
Discrete:
g1 is mapped to the (normalized)
number of pixels having
grayvalues 0..g1 .
35. Histogram Equalization
Mathematically the transformation
is deducted by theorems in
continous (not discrete) spaces.
The results achieved do NOT hold
for discrete spaces !
(Why ?)
However, it’s visually close.
36. Histogram Equalization
Conclusion:
• The transformation function that yields an image
having an equalized histogram is the integral of
the histogram of the source-image
• The discrete integral is given by the cumulative sum,
MATLAB function: cumsum()
• The function transforms an image into an image,
NOT a histogram into a histogram ! The
histogram is just a control tool !
• In general the transformation does not create an
image with an equalized histogram in the
discrete case !
37. Operations on a set of images
Operation on a set of images f1,f2,…
6 8 2 0
12 200 20 10
(Operator: sum) 11 13 3 0
14 220 23 14
5 5 1 0
2 20 3 4
38. Operations on a set of images
Logic (Bitwise) Operations
AND
OR
NOT
39. Operations on a set of images
The operators AND,OR,NOT are
functionally complete:
Any logic operator can be implemented
using only these 3 operators
40. Operations on a set of images
Any logic operator can be implemented
using only these 3 operators:
A B Op
0 0 1 Op=
NOT(A) AND NOT(B)
0 1 1
OR
1 0 0
NOT(A) AND B
1 1 0
41. Operations on a set of images
Image 1 AND Image 2
1 2 3 9
7 3 6 4
(Operator: AND) 1 0 1 1
2 2 2 0
1 1 1 1
2 2 2 2
42. Operations on a set of images
Image 1 AND Image 2:
Used for Bitplane-Slicing and
Masking
43. Operations on a set of images
Exercise: Define the mask-image, that
transforms image1 into image2 using
the OR operand
1 2 3 9
7 3 6 4
(Operator: OR) 255 2 7 255
255 3 7 255
44. Operations
Arithmetic Operations on a set of images
1 2 3 9
7 3 6 4
(Operator: +) 2 3 4 10
9 5 8 6
1 1 1 1
2 2 2 2
45. Operations
Exercise:
What could the operators +
and – be used for ?
49. Histograms
So far (part 1) :
• Histogram definition
• Histogram equalization
Now:
• Histogram statistics
50. Histograms
Remember:
The histogram shows the number of
pixels having a certain gray-value
number of pixels
grayvalue (0..1)
51. Histograms
The NORMALIZED histogram is the
histogram divided by the total number
of pixels in the source image.
The sum of all values in the normalized
histogram is 1.
The value given by the normalized
histogram for a certain gray value can
be read as the probability of randomly
picking a pixel having that gray value
52. Histograms
What can the (normalized)
histogram tell about the
image ?
53. Histograms
• The MEAN VALUE (or average gray level)
M = Σ g h(g)
g
1*0.3+2*0.1+3*0.2+4*0.1+5*0.2+6*0.1=
0.3
0.2 2.6
0.1
0.0
1 2 3 4 5 6
54. Histograms
The MEAN value is the average gray
value of the image, the ‘overall
brightness appearance’.
55. Histograms
2. The VARIANCE
V = Σ (g-M)2 h(g)
g
(with M = mean)
or similar:
The STANDARD DEVIATION
D = sqrt(V)
56. Histograms
VARIANCE gives a measure about the
distribution of the histogram values
around the mean.
0.3 0.3
0.2 0.2
0.1 0.1
0.0 0.0
V1 > V2
57. Histograms
The STANDARD DEVIATION is a value
on the gray level axis, showing the
average distance of all pixels to the
mean
0.3 0.3
0.2 0.2
0.1 0.1
0.0 0.0
D1 > D2
58. Histograms
VARIANCE and STANDARD DEVIATION
of the histogram tell us about the
average contrast of the image !
The higher the VARIANCE (=the higher
the STANDARD DEVIATION), the
higher the image’s contrast !
60. Histograms
Histograms with MEAN and
STANDARD DEVIATION
M=0.73 D=0.32 M=0.71 D=0.27
61. Histograms
Exercise:
Design an autofocus system for a digital
camera !
The system should analyse an area in the middle of the picture and
automatically adjust the lens such that this area is sharp.
62. Histograms
In between the basics…
…histograms can give us a first hint
how to create image databases:
63. Feature Based Coding
Feature Based Coding
• Determine a feature-vector for a given image
• Compare images by their feature-vectors
Two operations need to be defined: a mapping of shape
into the feature space and a similarity of feature vectors.
Representation Feature Extraction Vector Comparison
Where are the histograms ?
64. Feature Based Coding
Feature Based Coding
• Determine a feature-vector for a given image
• Compare images by their feature-vectors
Two operations need to be defined: a mapping of shape
into the feature space and a similarity of feature vectors.
Representation HISTOGRAM Histogram Comp.
HERE !
Question: how can we compare histograms (vectors) ?
68. Vector Comparison
What’s the meaning of the Cosine Distance with
respect to histograms ?
i.e.: what’s the consequence of eliminating the vector’s length information ?
69. Vector Comparison
More Vector Distances:
• Quadratic Form Distance
• Earth Movers Distance
• Proportional Transportation Distance
•…
70. Vector Comparison
Histogram Intersection
(non symmetric):
d(h1,h2) = 1 - ∑ min(h1 ,h2 )
i i i
/ ∑i h1i
Ex.: What could be a huge drawback of image
comparison using histogram intersection ?