3 Chapter3
3 Chapter3
Image Enhancement in
the Spatial Domain
Teacher: Ahsan Raza
Email : ahsan_raza@[Link]
Principle Objective of
Enhancement
Process an image so that the result will be
more suitable than the original image for a
specific application.
The suitableness is up to each application.
A method which is quite useful for enhancing
an image may not necessarily be the best
approach for enhancing another images
2
2 domains
Spatial Domain : (image plane)
Techniques are based on direct manipulation of pixels in an
image
Frequency Domain :
Techniques are based on modifying the Fourier transform of
an image
There are some enhancement techniques based on
various combinations of methods from these two
categories.
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
Good images
For human visual
The visual evaluation of image quality is a highly subjective
process.
It is hard to standardize the definition of a good image.
For machine perception
The evaluation task is easier.
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.
5
Spatial Domain
Procedures that operate
directly on pixels.
g(x,y) = T[f(x,y)]
where
f(x,y) is the input image
T is an operator on f defined
6
Assignment read about the r
dimensional image also sea
the 3D video
7
Transformations
Log Transformations
InvLog Log
Mask/Filter
Neighborhood of a point (x,y)
can be defined by using a
(x,y) square/rectangular (common
used) or circular subimage
• area centered at (x,y)
The center of the subimage is
moved from pixel to pixel
starting at the top of the
corner
9
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)
10
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
image
11
Assignment: Get your image
in c++ get the log and see
the difference
12
Thresholding
Produce a two-level
(binary) image
13
Mask Processing or Filter
Neighborhood is bigger than 1x1 pixel
Use a function of the values of f in a predefined
neighborhood of (x,y) to determine the value of g at
(x,y)
The value of the mask coefficients determine the
nature of the process
Used in techniques
Image Sharpening
Image Smoothing
14
3 basic gray-level
transformation functions
Linear function
Negative
Output gray level, s
nth root
Negative and identity
transformations
Log
nth power Logarithm function
Log and inverse-log
transformation
nth root and r 0
Log
Log curve maps a narrow
nth power range of low gray-level values
in the input image into a
wider range of output levels.
Used to expand the values of
Identity Inverse Log dark pixels in an image while
compressing the higher-level
values.
Input gray level, r
19
Log Transformations
It compresses the dynamic range of images with
large variations in pixel values
Example of image with dynamic range: Fourier
spectrum image
It can have 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.
20
Example of Logarithm
Image
22
Power-Law
Transformations
s = cr
Output gray level, s
26
a b
Another example c d
(a) image has a washed-out appearance,
it needs a compression of gray levels
needs > 1
(b) result after power-law
transformation with = 3.0 (suitable)
(c) transformation with = 4.0
(suitable)
(d) transformation with = 5.0
(high contrast, the image has areas
that are too dark, some detail is lost)
27
Piecewise-Linear
Transformation Functions
Advantage:
The form of piecewise functions can be
arbitrarily complex
Disadvantage:
Their specification requires considerably
more user input
28
Contrast Stretching
increase the dynamic range of
the gray levels in the image
(b) a low-contrast image : result
from poor illumination, lack of
dynamic range in the imaging
sensor, or even wrong setting of
a lens aperture of image
acquisition
(c) result of contrast stretching:
(r1,s1) = (rmin,0) and (r2,s2) =
(rmax,L-1)
(d) result of thresholding 29
Gray-level slicing
Highlighting a specific range of
gray levels in an image
Display a high value of all gray
levels in the range of interest
and a low value for all other
gray levels
(a) transformation highlights range
[A,B] of gray level and reduces all
others to a constant level
(b) transformation highlights range
[A,B] but preserves all other levels
30
Bit-plane slicing
Highlighting the contribution
made to total image
appearance by specific bits
One 8-bit byte Bit-plane 7 Suppose each pixel is
(most significant)
represented by 8 bits
Higher-order bits contain the
majority of the visually
significant data
Useful for analyzing the relative
Bit-plane 0 importance played by each bit
(least significant)
of the image
31
Example
The (binary) image for bit-
plane 7 can be obtained
by processing the input
image with a thresholding
gray-level transformation.
Map all levels between 0 and
127 to 0
Map all levels between 129
and 255 to 255
Bit-plane 7 Bit-plane 6
33
Histogram Processing
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 r k
h(rk) : histogram of a digital image with gray levels rk
34
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 an estimate of the probability of occurrence of gray
level rk
The sum of all components of a normalized histogram is
equal to 1
35
Histogram Processing
Basic for numerous spatial domain
processing techniques
Used effectively for image enhancement
Information inherent in histograms also
is useful in image compression and
segmentation
36
h(rk) or p(rk)
Example rk
Dark image
Components of
histogram are
concentrated on
the low side of
the gray
Bright scale.
image
Components of
histogram are
concentrated on
the high side of37
Example
Low-contrast image
histogram is
narrow and
centered toward
the middle ofimage
High-contrast the
gray scale covers
histogram
broad range of the
gray scale and the
distribution of pixels
is not too far from
uniform, with very 38
Histogram Equalization
As the low-contrast image’s histogram is narrow
and centered toward the middle of the gray
scale, if we distribute the histogram to a wider
range the quality of the image will be improved.
We can do it by adjusting the probability
density function of the original histogram of the
image so that the probability spread equally
39
Histogram transformation
s s = T(r)
Where 0 r 1
T(r) satisfies
sk= T(rk) (a). T(r) is single-valued
and monotonically
T(r) increasingly in the
interval 0 r 1
(b). 0 T(r) 1 for
0r1
0 r 1 r
k
40
2 Conditions of T(r)
Single-valued (one-to-one relationship) guarantees
that the inverse transformation will exist
Monotonicity condition preserves the increasing
order from black to white in the output image thus it
won’t cause a negative image
0 T(r) 1 for 0 r 1 guarantees that the output
gray levels will be in the same range as the input
levels.
The inverse transformation from s back to r is
r = T -1(s) ;0s1 41
Probability Density
Function
The gray levels in an image may be
viewed as random variables in the
interval [0,1]
PDF is one of the fundamental
descriptors of a random variable
42
Random Variables
Random variables often are a source
of confusion when first encountered.
This need not be so, as the concept of
a random variable is in principle quite
simple.
43
Random Variables
A random variable, x, is a real-valued function defined
on the events of the sample space, S.
In words, for each event in S, there is a real number
that is the corresponding value of the random
variable.
Viewed yet another way, a random variable maps
each event in S onto the real [Link]
That is it. A simple, straightforward definition.
44
Random Variables
Part of the confusion often found in
connection with random variables is
the fact that they are functions.
functions
The notation also is partly responsible
for the problem.
45
Random Variables
In other words, although typically the notation
used to denote a random variable is as we
have shown it here, x, or some other
appropriate variable,
to be strictly formal, a random variable should
be written as a function x(·) where the
argument is a specific event being considered.
46
Random Variables
However, this is seldom done, and, in our
experience, trying to be formal by using
function notation complicates the issue more
than the clarity it introduces.
Thus, we will opt for the less formal notation,
with the warning that it must be keep clearly
in mind that random variables are functions.
47
Random Variables
Example:
Consider the experiment of drawing a single card
from a standard deck of 52 cards.
Suppose that we define the following events. A: a
heart; B: a spade; C: a club; and D: a diamond, so
that S = {A, B, C, D}.
A random variable is easily defined by letting x =
1 represent event A, x = 2 represent event B, and
so on.
48
Random Variables
As a second illustration,
consider the experiment of throwing a single die and observing
the value of the up-face.
We can define a random variable as the numerical outcome of
the experiment (i.e., 1 through 6), but there are many other
possibilities.
For example, a binary random variable could be defined simply
by letting x = 0 represent the event that the outcome of throw
is an even number and
x = 1 otherwise.
49
Random Variables
Note
the important fact in the examples just
given that the probability of the events
have not changed;
all a random variable does is map events
onto the real line.
50
Random Variables
Thus far we have been concerned with
random variables whose values are discrete.
To handle continuous random variables we
need some additional tools.
In the discrete case, the probabilities of
events are numbers between 0 and 1.
51
Random Variables
When dealing with continuous quantities
(which are not denumerable) we can no
longer talk about the "probability of an
event" because that probability is zero.
This is not as unfamiliar as it may seem.
52
Random Variables
For example,
given a continuous function we know that the
area of the function between two limits a and b
is the integral from a to b of the function.
However, the area at a point is zero because
the integral from,say, a to a is zero.
We are dealing with the same concept in the
case of continuous random variables.
53
Random Variables
Thus, instead of talking about the probability of a specific
value, we talk about the probability that the value of the
random variable lies in a specified range.
In particular, we are interested in the probability that the
random variable is less than or equal to (or, similarly,
greater than or equal to) a specified constant a.
We write this as
F(a) = P(x a)
54
Random Variables
If this function is given for all values of a (i.e., <
a < ), then the values of random variable x have
been defined.
Function F is called the cumulative probability
distribution function or simply the cumulative
distribution function (cdf).
The shortened term distribution function also is
used.
55
Random Variables
Observe that the notation we have used makes no
distinction between a random variable and the
values it assumes.
If confusion is likely to arise, we can use more
formal notation in which we let capital letters
denote the random variable and lowercase letters
denote its values.
For example, the cdf using this notation is written as
FX(x) = P(X x) 56
Random Variables
When confusion is not likely, the cdf
often is written simply as F(x).
This notation will be used in the
following discussion when speaking
generally about the cdf of a random
variable.
57
Random Variables
Due to the fact that it is a probability,
the cdf has the following properties:
1. F(-) = 0
2. F() = 1
3. 0 F(x) 1
4. F(x1) F(x2) if x1 < x2
5. P(x1 < x x2) = F(x2) – F(x1)
6. F(x+) = F(x),
60
Random Variables
The preceding concepts are applicable to discrete random
variables.
In this case, there is a finite no. of events and we talk
about probabilities, rather than probability density
functions.
Integrals are replaced by summations and, sometimes, the
random variables are subscripted.
For example, in the case of a discrete variable with N
possible values we would denote the probabilities by P(xi),
i=1, 2,…, N.
61
Random Variables
If a random variable x is transformed by a monotonic
transformation function T(x) to produce a new random
variable y,
the probability density function of y can be obtained
from knowledge of T(x) and the probability density
function of x, as follows:
dx
p y ( y ) px ( x )
dy
where the vertical bars signify the absolute 62
Random Variables
A function T(x) is monotonically increasing if
T(x1) < T(x2) for x1 < x2, and
A function T(x) is monotonically decreasing if
T(x1) > T(x2) for x1 < x2.
The preceding equation is valid if T(x) is an
increasing or decreasing monotonic function.
63
Applied to Image
Let
pr(r) denote the PDF of random variable r
ps (s) denote the PDF of random variable s
If pr(r) and T(r) are known and T-1(s) satisfies condition
(a) then ps(s) can be obtained using a formula :
dr
p s (s) p r (r)
ds 64
Applied to Image
The PDF of the transformed variable s
is determined by
the gray-level PDF of the input image
and by
the chosen transformation function
65
Transformation function
A transformation function is a cumulative
distribution function (CDF) of random variable r
: r
s T ( r ) pr ( w )dw
0
yields
Ps(s)
a random variable 1
s characterized by
a uniform 0
70
s
Discrete
transformation function
The probability of occurrence of gray level in an
image is approximated by
nk
pr ( rk ) where k 0 , 1, ..., L-1
n
The discrete version kof transformation
sk T ( rk ) pr ( r j )
j 0
k nj
where k 0 , 1, ..., L-1
j 0 n 71
Histogram Equalization
Thus, an output image is obtained by mapping
each pixel with level rk in the input image into a
corresponding pixel with level sk in the output
image
In discrete space, it cannot be proved in general
that this discrete transformation will produce the
discrete equivalent of a uniform probability density
function, which would be a uniform histogram
72
Example
before after Histogram
equalization
73
Example
before after Histogram
equalization
The quality is
not improved
much because
the original
image already
has a broaden
gray-level scale
74
Example
No. of pixels
6
2 3 3 2
5
4 2 4 3 4
3 2 3 5 3
2 4 2 4 2
1
Gray level
4x4 image
0 1 2 3 4 5 6 7 8 9
Gray scale = [0,9]
histogram
75
Gray
0 1 2 3 4 5 6 7 8 9
Level(j)
No. of
0 0 6 5 4 1 0 0 0 0
pixels
k
n
j 0
j 0 0 6 11 15 16 16 16 16 16
k nj 6 11 15 16 16 16 16 16
s
j 0 n 0 0 / / / / / / / /
16 16 16 16 16 16 16 16
3.3 6.1 8.4
sx9 0 0 9 9 9 9 9
3 6 8
Example
No. of pixels
6
3 6 6 3
5
8 3 8 6 4
6 3 6 9 3
3 8 3 8 2
1
Output image
0 1 2 3 4 5 6 7 8 9
Gray scale = [0,9] Gray level
Histogram equalization
77
Note
It is clearly seen that
Histogram equalization distributes the gray level to reach
the maximum gray level (white) because the cumulative
distribution function equals 1 when
0 r L-1
If the cumulative numbers of gray levels are slightly
different, they will be mapped to little different or same
gray levels as we may have to approximate the processed
gray level of the output image to integer number
Thus the discrete transformation function can’t guarantee
the one to one mapping relationship
78
Two Different Images-The Same
Histogram
Histogram Equalisation
Histogram Equalisation
Histogram Equalisation
Histogram Equalisation
Histogram Equalisation
Histogram Equalisation
Histogram Equalisation
Local Histogram
Equalisation
Local Histogram
Equalisation
Histogram Modification
Summary
Histogram Matching
(Specification)
Histogram equalization has a disadvantage
which is that it can generate only one type of
output image.
With Histogram Specification, we can specify
the shape of the histogram that we wish the
output image to have.
It doesn’t have to be a uniform histogram
93
Consider the continuous domain
z = G-1(s) = G-1[T(r)]
Assume G-1 exists and satisfies the condition (a) and (b)
We can map an input gray level r to output gray level z
95
Procedure Conclusion
1. Obtain the transformation function T(r) by
calculating the histogram equalization of
the input image r
s T ( r ) pr ( w )dw
0
Pr(r) 2r 2 ;0 r 1
pr ( r )
2 0 ; elsewhere
r
1
p
0
r ( w )dw 1
0 1 2 r 98
Example
We would like to apply the histogram specification with the
desired probability density function pz(z) as shown.
Pz(z)
2z ;0 z 1
2 pz ( z )
0 ; elsewhere
1 z
p
0
z ( w )dw 1
z
0 1 2 99
Step 1:
Obtain the transformation function T(r)
r
s=T(r)
s T ( r ) pr ( w )dw
0
1 r
( 2 w 2 )dw
One to one 0
mapping 2
w 2 w
r
function 0
0 r r 2 2r
1
100
Step 2:
Obtain the transformation function G(z)
z
z
G ( z ) ( 2 w )dw z 2
z 2
0
0
101
Step 3:
Obtain the inversed transformation function G-1
G ( z ) T ( r )
z 2 r 2 2r
z 2r r 2
z k G 1 T ( rk )
G 1 sk k 0 ,1,2 ,..., L 1 103
Example
Result image
after
histogram
Transformation function Histogram of the result
equalization
for histogram image
The histogram equalization doesn’t make the result image look better than the original
equalization
image. Consider the histogram of the result image, the net effect of this method is to map a
very narrow interval of dark pixels into the upper end of the gray scale of the output image.
As a consequence, the output image is light and has a washed-out appearance.
105
Solve the problem Histogram
Equalization
Since the problem with the
transformation function of the
histogram equalization was caused
by a large concentration of pixels in
the original image with levels near 0 Histogram
Specification
a reasonable approach is to modify
the histogram of that image so that
it does not have this property
106
Histogram Specification
(1) the transformation
function G(z) obtained
from k
G ( z ) p ( z ) s
k z i k
i 0
k 0 ,1,2 ,..., L 1
113
Logic Operations
Logic operation performs on gray-level
images, the pixel values are processed as
binary numbers
light represents a binary 1, and dark
represents a binary 0
NOT operation = negative transformation
114
Example of AND Operation
255
while the rest are adjusted according to the interval
K
1
g ( x, y )
K
g ( x, y )
i 1
i
122
Image Averaging
then
1 2
2
g ( x, y ) ( x, y )
K
2
g ( x, y ) , 2
( x, y ) = variances of g and
125
a b
c d
Example e f
a) original image
b) image corrupted by
additive Gaussian noise with
zero mean and a standard
deviation of 64 gray levels.
c). -f). results of averaging K
= 8, 16, 64 and 128 noisy
images
126
Image Averaging Example
Spatial Filtering
use filter (can also be called as
mask/kernel/template or window)
the values in a filter subimage are referred
to as coefficients, rather than pixel.
our focus will be on masks of odd sizes,
e.g. 3x3, 5x5,…
128
Spatial Masks
Low-pass Masks (Local
Averaging)
Spatial Filtering Process
simply move the filter mask from point to point
in an image.
at each point (x,y), the response of the filter at
that point is calculated using a predefined
relationship.
R w1 z1 w2 z 2 ... wmn z mn
mn
wi zi
i i
131
Linear Filtering
Linear Filtering of an image f of size MxN filter
mask of size mxn is given by the expression
a b
g ( x, y ) w( s, t ) f ( x s, y t )
t a t b
133
Smoothing Linear Filters
output is simply the average of the
pixels contained in the neighborhood of
the filter mask.
called averaging filters or lowpass filters.
134
Smoothing Linear Filters
replacing the value of every pixel in an image by
the average of the gray levels in the neighborhood
will reduce the “sharp” transitions in gray levels.
sharp transitions
random noise in the image
edges of objects in the image
thus, smoothing can reduce noises (desirable) and
blur edges (undesirable)
135
3x3 Smoothing Linear Filters
w( s, t ) f ( x s, y t )
g ( x, y ) s at b a b
w( s, t )
s a t b
146
Sharpening Spatial Filters
to highlight fine detail in an image
or to enhance detail that has been
blurred, either in error or as a natural
effect of a particular method of image
acquisition.
147
Blurring vs. Sharpening
as we know that blurring can be done in
spatial domain by pixel averaging in a
neighbors
since averaging is analogous to integration
thus, we can guess that the sharpening must
be accomplished by spatial differentiation.
148
Derivative operator
the strength of the response of a derivative
operator is proportional to the degree of
discontinuity of the image at the point at which
the operator is applied.
thus, image differentiation
enhances edges and other discontinuities (noise)
deemphasizes area with slowly varying gray-level
values.
149
First-order derivative
a basic definition of the first-order
derivative of a one-dimensional
function f(x) is the difference
F(X f
)
f ( x 1) f ( x )
x
-1 1
X X+ 1 150
2nd order derivator wrt x-axis
F(X
)
X -1 X X+ 1
F(X)- F(X-1) F(X+1)- F(X) 1 -2 1
F(X+1)+F(X-1) – 2F(X)
151
Second-order derivative
similarly, we define the second-order
derivative of a one-dimensional
function f(x) is the difference
2
f
2
f ( x 1) f ( x 1) 2 f ( x )
x
1 -2 1
152
First and Second-order
derivative of f(x,y)
when we consider an image function
of two variables, f(x,y), at which time
we will dealing with partial derivatives
along the two
f
fspatial
( x, y ) axes.
f ( x, y ) f ( x, y )
Gradient operator xy x y
Laplacian operator 2
f ( x , y ) 2
f ( x, y )
2
(linear operator) f 2
x y 2 153
Discrete Form of Laplacian
2 f
from
2
f ( x 1, y ) f ( x 1, y ) 2 f ( x, y )
x
2 f
2
f ( x, y 1) f ( x, y 1) 2 f ( x, y )
y
yield,
2 f [ f ( x 1, y ) f ( x 1, y )
f ( x, y 1) f ( x, y 1) 4 f ( x, y )]
154
Result Laplacian mask
155
an extension of diagonal
neighbors
156
Other implementation of
Laplacian masks
give the same result, but we have to keep in mind that when
combining (add / subtract) a Laplacian-filtered image with
another image. 157
Effect of Laplacian Operator
as it is a derivative operator,
it highlights gray-level discontinuities in an image
it deemphasizes regions with slowly varying gray
levels
tends to produce images that have
grayish edge lines and other discontinuities, all
superimposed on a dark,
featureless background.
158
Correct the effect of
featureless background
easily by adding the original and Laplacian
image.
be careful with the Laplacian filter used
if the center coefficient of the
f ( x, y ) 2 f ( x, y ) Laplacian mask is negative
g ( x, y ) 2
f ( x , y ) f ( x, y )
if the center coefficient of the
Laplacian mask is positive
159
Example
a). image of the North
pole of the moon
b). Laplacian-filtered
image with
1 1 1
1 -8 1
c). Laplacian
1 1image
1 scaled
for display purposes
d). image enhanced by
addition with original
image
160
Mask of Laplacian +
addition
to simply the computation, we can
create a mask which do both
operations, Laplacian Filter and
Addition the original image.
161
Mask of Laplacian +
addition
g ( x, y ) f ( x, y ) [ f ( x 1, y ) f ( x 1, y )
f ( x, y 1) f ( x, y 1) 4 f ( x, y )]
5 f ( x, y ) [ f ( x 1, y ) f ( x 1, y )
f ( x, y 1) f ( x, y 1)]
0 -1 0
-1 5 -1
0 -1 0
162
Example
163
f ( x, y ) 2 f ( x, y )
g ( x, y )
Note f ( x , y ) 2
f ( x, y )
0 -1 0 0 0 0 0 -1 0
-1 5 -1 = 0 1 0 + -1 4 -1
0 -1 0 0 0 0 0 -1 0
0 -1 0 0 0 0 0 -1 0
-1 9 -1 = 0 1 0 + -1 8 -1
0 -1 0 0 0 0 0 -1 0
164
Unsharp masking
f s ( x, y ) f ( x, y ) f ( x, y )
sharpened image
sharpened image =
= original
original image
image –– blurred
blurred
image
image
to subtract a blurred version of an image
produces sharpening output image.
165
High-boost filtering
f hb ( x, y ) Af ( x, y ) f ( x, y )
f hb ( x, y ) ( A 1) f ( x, y ) f ( x, y ) f ( x, y )
( A 1) f ( x, y ) f s ( x, y )
generalized form of Unsharp masking
A1
166
High-boost filtering
f hb ( x, y ) ( A 1) f ( x, y ) f s ( x, y )
if we use Laplacian filter to create sharpen
image fs(x,y) with addition of original image
f ( x, y ) 2 f ( x, y )
f s ( x, y ) 2
f ( x , y ) f ( x, y )
167
High-boost filtering
if the center coefficient of the
yields Laplacian mask is negative
Af ( x, y ) 2 f ( x, y )
f hb ( x, y ) 2
Af ( x , y ) f ( x, y )
A1
if A = 1, it becomes “standard” Laplacian
sharpening 169
Example
170
f
Gx x
f f
Gradient Operator G
y
y
1 commonly approx.
f 2 f 2 2
x y
f G x G y
the magnitude becomes nonlinear
171
z1 z2 z3
z4 z5 z6
Gradient Mask z7 z8 z9
f z8 z5 z6 z5
172
z1 z2 z3
z4 z5 z6
Gradient Mask z7 z8 z9
f z9 z5 z8 z6
173
z1 z2 z3
z4 z5 z6
Gradient Mask z7 z8 z9
175
Example
176
Spatial Enhancement
Methods
want to sharpen the
original image and bring
out more skeletal detail.
problems: narrow dynamic
range of gray level and
high noise content makes
the image difficult to
enhance
177
Spatial Enhancement
Methods
solve :
178
179
180