Digital Image Processing 03 Image Enhancement in Spatial Domain
Digital Image Processing 03 Image Enhancement in Spatial Domain
John See
Faculty of Information Technology
Multimedia University
Some portions of content adapted from Zhu Liu, AT&T Labs. Most figures from Gonzalez/Woods 1
Lecture Outline
● Introduction
● Point Processing
● Basic Gray Level Transformation Functions
● Piecewise-Linear Transformation Functions
● Histogram Processing – Histogram Equalization
2
Some Announcements
● Consultation Hours: Thursdays, 2-6pm
● Some of you have very poor attendance (as I'm beginning
to see it...) -- I will NOT hesitate to bar you.
● Please get a copy of Matlab installed – so that you can work
on your tutorial exercises and coming assignments.
3
What is Image Enhancement?
4
Image Enhancement
● Images are obtained from various sensor outputs
● Sometimes, they are NOT suitable for use in
applications, e.g. Mars Probe Images, X-ray images
● Image Enhancement – A set of image processing
operations applied on images to produce good
images useful for a specific application.
5
Principle Objective of Enhancement
● Process an image so that the result will be more
suitable than the original image for a specific
application
● The suitability depends on each specific application
– A method useful for enhancing a certain image may not
necessarily be the best approach for enhancing other
types of images
6
What is a good, suitable image?
● For human visual
– The visual evaluation of image quality is a highly subjective process
– Hard to standardize the definition of a good image
● For machine perception
– The evaluation task is staightforward
– A good image is one which gives the best machine recognition
results
● A certain amount of trial and error usually is required before
a particular image enhancement approach is selected
7
2 Domains
● Spatial Domain (image plane)
– Techniques are based on direct manipulation of pixels in
an image
● Frequency Domain
– Tehniques are based on modifying the spectral transform
(in our course, we'll use Fourier transform) of an image
● There are some enhancement techniques based on
various combinations of methods from these 2
domains
8
3 Types of Processing
● Any image processing operation transforms the gray values of
the pixels
● Divided into 3 classes based on the information required to
perform the transformation
– Point processing – Gray values change without any knowledge
of its surroundings
– Neighborhood processing – Gray values change depending on
the gray values in a small neighborhood of pixels around the
given pixel
– Transforms – Gray values are represented in a different
domain, but equivalent form, e.g. Fourier, wavelet
9
Spatial Domain
● Procedures that operate
directly on pixels
g(x, y) = T[ f(x, y) ]
– where
● f(x, y) is the input image
● g(x, y) is the processed image
● T is the operator on f defined
over some neighborhood of (x, y)
10
Mask/Filter
● Neighborhood of a point (x,y)
can be defined by using a
square/rectangular (commonly
(x,y) used) or circular sub-image area
• centered at (x,y)
● The center of the sub-image is
moved from pixel to pixel
starting from the top corner of
the processed image
● To be covered in next lecture!
11
Point Processing
● Neighborhood = 1x1 pixel
● g depends on only the value of f at (x, y)
● T = gray level (or intensity or mapping) transformation
function
s = T(r)
where
r = gray level of f(x, y)
s = gray level of g(x, y)
12
Arithmetic Operations
● These operations act by applying a simple
arithmetic function s = T(r) to each gray level in
the image
● T is a function that maps r to s.
● Addition, subtraction, scaling (multiplication &
division), complement, etc.
13
Arithmetic Operations
14
Image Subtraction
● The difference between two images f(x,y) and h(x,y),
g(x,y) = f(x,y) – h(x,y)
– is obtained by computing the difference between all pairs of
corresponding pixels
● Usefulness: Enhancement of differences between images
15
Basic Gray-level Transformation
Functions
● Linear function
– Negative and identity
transformations
● Logarithm function
– Log and inverse-log
transformations
● Power-law function
– nth power and nth root
transformations
16
Identity Function
● Output intensities are
identical to input
intensities
● What “goes in”, “comes
out” the same
17
Negative Transformation
● For an image with gray levels
in the range [0, L-1]
where L = 2n, n = 1, 2, ...
● Negative transformation:
s=L–1–r
● Reversing the intensity levels
of an image
18
Negative Transformation
● Suitable for enhancing white or gray detail embedded in dark
regions of an image, especially when the black area is
dominant in size
19
Log Transformation
s = c log(1+r)
● c is a constant and r ≥ 0
● Log curve maps a narrow
range of low gray levels in the
input image into a wider
range of output levels
– Expand the values of dark
pixels
– Compress higher value lighter
pixels
20
Log Transformations
● Compresses the dynamic range of images with large
variations in pixel values
● E.g. Image with dynamic range – Fourier spectrum image (to
be discussed in Lecture 5)
– Intensity range from 0 to 106 or higher
● We can't see the significant degree of detail as it will be lost
in the display (remember: our human eyes have limitations!)
21
Log Transformations on Spectrum
Images
● Log transformations bring up the details that are not visible
due to large dynamic range of values
23
Power-Law Transformation
s = crγ
● c and γ are positive constants
● Power-law curves with
fractional values of γ map a
narrow range of dark input
values into a wider range of
output value, with the
opposite being true for higher
values of input levels
● c = γ = 1, results in the
identity function 24
Gamma Correction
● CRT devices have a power
function, with γ varying
from 1.8 to 2.5
● Macintosh (1.8), PC (2.5)
● The picture appears darker
● Gamma correction is done
by preprocessing the
image before inputting it
to the monitor with
s = cr1/γ
25
Application: MRI of Human Spine
● Problem: Picture is too dark
● Solution: Expansion of lower
gray levels is desirable, γ < 1
● γ = 0.6 (insufficient)
● γ = 0.4 (best result)
● γ = 0.3 (contrast lacking)
26
Decreasing Gamma?
● When γ is reduced too much, the image begins to reduce
contrast to the point where the image starts to have a
“wash-out” look, especially in the background
27
Application: Aerial Imagery
● Problem: Image has “wash-
out” appearance
● Solution: Compression of
higher gray levels is desirable,
γ>1
● γ = 3.0 (suitable)
● γ = 4.0 (suitable)
● γ = 5.0 (high contrast, some
finer details are lost)
28
Piecewise-Linear Transformation
Functions
● Advantage
– The form of piecewise functions can be arbitrarily complex
– Some important transformations can be formulated only
as piecewise functions
● Disadvantage
– Specification requires considerably more user input
29
Contrast Stretching
● Produce higher contrast than the original by
– Darkening the levels below m in the original image
– Brightening the levels above m in the original
– Thresholding: produce a binary image
30
Linear Stretching
● Enhance the dynamic range by linear stretching the
original gray levels to the range of 0 to 255
● Example
– The original gray levels are [100, 150]
– The target gray levels are [0, 255]
– The transformation function
g(f) = (f – s1)/(s2 – s1)*(t2 – t1) + t1
g(f) = ((f – 100)/50)*255 + 0, for 100 ≤ f ≤ 150
31
Illustration of Linear Stretching
32
Piecewise Linear Stretching
● K segments
– Starting position of input {fk, k = 0, ... K-1}
– Starting position of output {gk, k = 0, ... K-1}
– Transform function
33
Application: Contrast Stretching
● Problem: Low contrast image,
result of poor illumination,
lack of dynamic range
● Solution: Contrast stretching
using the given
transformation function
(bottom left)
● Result of thresholding
(bottom right)
34
Gray-level Slicing
● Highlighting a specific range
of gray levels in an image
– Display high value for gray
levels in the range of interest
and low value for all other gray
levels
● (left) Highlights range [A,B]
and reduces all others to a
constant level
● (right) Highlights range [A,B]
but preserves all other levels
35
Bit-plane Slicing
37
Example: Slicing Fractals
Bit-plane 7 Bit-plane 6
38
How to Enhance Contrast?
● We know that Contrast Stretching is one particular technique
39
Image Histogram
● Histogram of a digital image with gray levels in the
range [0, L-1] is a discrete function
h(rk) = nk
where
– rk : the kth gray level
– nk : the number of pixels in the image having gray level rk
– h(rk) : histogram of a digital image with gray levels rk
40
Normalized Histogram
● Dividing each of histogram at gray level rk by the total
number of pixels in the image, n
p(rk) = nk/n
for k = 0, 1, ... , L-1
● p(rk) gives the estimate of the probability of occurrence of
gray level rk
● The sum of all components of a normalized histogram is
equal to 1
41
Histogram Processing
● Basic for numerous spatial domain processing techniques
● Used effectively for image enhancement
● Information inherent in histograms is also useful in image
compression and segmentation
42
Histogram & Image Contrast
● Dark Image
– Components of histogram
are concentrated on the
low side of the gray scale
● Bright Image
– Components of histogram
are concentrated on the
high side of the gray scale
43
Histogram & Image Contrast
● Low-contrast Image
– Histogram is narrow and
centred towards the middle
of the gray scale
● High-contrast Image
– Histogram covers a broad
range of the gray scale and
the distribution of pixels is
not too far from uniform,
with very few vertical lines
being much higher than
others
44
Histogram & Image Contrast
45
Different Images with Same Histogram!
46
Correcting the Pouting Child
47
Histogram Equalization
● Histogram EQUALization
– Aim: To “equalize” the histogram, to “flatten”, “distrubute as
uniform as possible”
● As the low-contrast image's histogram is narrow and
centred towards the middle of the gray scale, by
distributing the histogram to a wider range will improve the
quality of the image
● Adjust probability density function of the original histogram
so that the probabilities spread equally
48
Histogram Transformation
s = T(r)
● Where 0 ≤ r ≤ 1
● T(r) satisfies
a) T(r) is single-valued and
monotonically increasingly in
the interval 0 ≤ r ≤ 1
b) 0 ≤ T(r) ≤ 1 for 0 ≤ r ≤ 1
● Single-valued guarantees that
the inverse transformation will
exist
49
Histogram Equalization
● Transforms an image with an arbitrary histogram to one
with a flat histogram
● Suppose f has PDF, pF(f), 0 ≤ f ≤ 1
● Transform function (continuous version)
● g is uniformly distributed in (0, 1)
50
Discrete Implementation
● For a discrete image f which takes values k = 0, ... , K-1, use
51
Example: Discrete Implementation
52
Histogram Specification (Matching)
● What if the desired histogram is not flat?
53
A Global Method?
● So far, would you consider Histogram Processing
(and the other transformations covered so far) as a
global method?
● Global: The pixels are modified by a transformation
function based on the gray-level content of an entire
image
54
Local Histogram Equalization
● Dealing with things locally
55
Next week...
● Spatial Filtering (Neighborhood Processing)
– Taking into consideration information from neighboring
pixels
56
Recommended Readings
nd
● Digital Image Processing (2 Edition), Gonzalez &
Woods,
– Chapter 3:
● 3.1 – 3.3 (Week 3)
● 3.4 (Extra)
● 3.5 – 3.8 (Week 4)
57