If we consider the grayvalues in the image as realizations of a random variable R, with some probability density, histogram provides an approximation to this probability density... I
Trang 1 Prof Duong Anh Duc
Trang 2 To process an image so that output is “visually better” than the input, for a specific application
Enhancement is therefore, very much dependent on the particular problem/image at hand
Enhancement can be done in either:
Trang 3Image Enhancement Techniques
• Median Filtering
• Sharpening operations
• Derivative operations
• Histogram operations
• Low pass Filtering
• Hi pass Filtering
• Band pass Filtering
• Homomorphic Filtering
• Histogram operations
• False Coloring
• Full color Processing
Trang 4 Output pixel value g(m, n) at pixel (m, n) depends only on the input pixel value at f(m, n) at (m, n) (and not on the neighboring pixel values)
We normally write s = T(r), where s is the output pixel value and r is the input pixel value
Trang 55
T(r) = s = L – 1 – r, L: max grayvalue
Trang 7 Increase the dynamic range of grayvalues in the input image
Suppose you are interested in stretching the input intensity values
in the interval [r1, r2]:
Note that (r1 – r2) < (s1 – s2) The grayvalues in the range [r1, r2] is stretched into the range [s1, s2] 7
Trang 8 Special cases:
r1 = r2 , s1 = 0 and s2 = 1
interested in the shape of the objects and on their actual grayvalues
Trang 99
Trang 10 Special cases (cont.):
1 2
1
1
, 1 ,
, 0
r r
r r
r r
r
r r
r r
r T
g
Trang 1111
Gamma correction
Trang 12 When the dynamic range of the input grayvalues is large
compared to that of the display, we need to “compress” the
grayvalue range - example: Fourier transform magnitude
Typically we use a log scale
s = T(r) = c log(1+ r )
Trang 13Saturn Image Mag Spectrum Mag Spectrum
in log scale
Trang 14 Graylevel Slicing: Highlight a specific range of grayvalues
Trang 15 Example:
15
Original Image
Highlighted Image (no background)
Highlighted Image (with background)
Trang 16 Bitplane Slicing: Display the different bits as individual binary
images
Trang 18 In this case, the difference between two “similar” images is
computed to highlight or enhance the differences between them:
g(m, n) = f1(m, n) – f2(m, n)
It has applications in image segmentation and enhancement
Trang 19f1(m, n): Image before dye injection
f2(m, n): Image after dye injection
g(m, n): Image after dye injection, followed by subtraction
Trang 20 Noise is any random (unpredictable) phenomenon that
Noise-free Image
Noise
Trang 21 The noise h(m, n) at each pixel (m, n) is modeled as a random variable
Usually, h(m, n) has zero-mean and the noise values at different pixels are uncorrelated
Suppose we have M observations {gi (m, n)}, i =1, 2, …, M, we can (partially) mitigate the effect of noise by “averaging”
n m
g
1
, 1
,
Trang 22 In this case, we can show that:
Therefore, as the number of observations increases (M ), the effect of noise tends to zero
n m f n
m g E
, Var
1 ,
Var
, ,
Trang 2323
Noise Variance = 0.05
Trang 24M =2 M =5
Trang 2525
Trang 26M =50 M =100
Trang 2727
Trang 28 The histogram of a digital image with grayvalues r0, r1, …, rL – 1 is the discrete function
The function p(rk) represents the fraction of the total number of pixels with grayvalue rk
Histogram provides a global description of the appearance of the
# total
e with valu pixels
# where
,
n
r n
n
n r
Trang 29 If we consider the grayvalues in the image as realizations of a random variable R, with some probability density, histogram provides an
approximation to this probability density In other words,
Pr[R = rk] p(rk)
29
Trang 30 The shape of a histogram provides useful information for contrast enhancement
Trang 31 The shape of a histogram provides useful information for contrast enhancement
31
Trang 32The original image displayed
The stretched image
0 5000
10000 The histogram of the original image
5000 10000
The stretched histogram
Trang 33 Idea: find a non-linear transformation
g = T (f )
to be applied to each pixel of the input image f(x, y), such that a
uniform distribution of gray levels in the entire range results for the
output image g(x, y)
33
Trang 34 Let us assume for the moment that the input image to be
enhanced has continuous grayvalues, with r = 0 representing black and r = 1 representing white
We need to design a grayvalue transformation s = T(r), based on the histogram of the input image, which will enhance the image
As before, we assume that:
order from black to white)
grayvalues)
Trang 36 Let us denote the inverse transformation by r = T – 1(s) We assume that the inverse transformation also satisfies the above two conditions
We consider the grayvalues in the input image and output image
as random variables in the interval [0, 1]
Let pin(r) and pout(s) denote the probability density of the grayvalues in the input and output images
Trang 37 If pin(r) and T(r) are known, and T– 1(s) satisfies condition 1, we can write (result from probability theory):
One way to enhance the image is to design a transformation T(.) such that the grayvalues in the output is uniformly distributed in
in out
ds
dr r
p s
Trang 38 In terms of histograms, the output image will have all grayvalues
in “equal proportion.”
This technique is called histogram equalization
Consider the transformation
r o
r dw
w p
r T
Trang 39 Note that this is the cumulative distribution function (CDF) of pin(r) and satisfies the previous two conditions
From the previous equation and using the fundamental theorem of calculus,
39
r
p dr
ds
in
Trang 40 Therefore, the output histogram is given by
The output probability density function is uniform, regardless of the
r p s
p
s T r
s T r in
in out
Trang 41 Thus, using a transformation function equal to the CDF of input grayvalues r, we can obtain an image with uniform grayvalues
This usually results in an enhanced image, with an increase in the
dynamic range of pixel values
41
Trang 4343
Trang 44 For images with discrete grayvalues, we have
for 0 1 and 0 1
n
n r
Trang 45 The discrete version of the previous transformation based on CDF is given by:
45
, for 0 1
0
in 0
r
p n
n r
T s
k i
i k
i
i k
k
Trang 48 Applying the previous
7
6 89 0
7
6 81 0
7
5 65 0
7
3 44 0
7
1 19 0
6 in 1
in 0
in
6 in 6
6
5 in 1
in 0
in 5
0 in 5
5
4 in 1
in 0
in 4
0 in 4
4
3 in 1
in 0
in 3
0 in 3
3
2 in 1
in 0
in 2
0 in 2
2
1 in 0
in 1
0 in 1
1
0 in 0
0 in 0
p r p r p r
T s
r p r
p r p r p r
T s
r p r
p r p r p r
T s
r p r
p r p r p r
T s
r p r p r p r p r
T s
r p r p r p r
T s
r p r p r
T s
Trang 49 With this transformation, the output image will have histogram
Trang 50 Note that the histogram of output image is only approximately, and not exactly, uniform This should not be surprising, since there is no result that claims uniformity in the discrete case
Trang 5151
Trang 5353
Trang 5555
Trang 5757
Trang 59 Histogram equalization may not always produce desirable results,
particularly if the given histogram is very narrow It can produce false edges and regions It can also increase image “graininess” and
“patchiness.”
59
Trang 60 Histogram equalization yields an image whose pixels are (in theory) uniformly distributed among all graylevels
Sometimes, this may not be desirable Instead, we may want a
transformation that yields an output image with a prespecified
histogram This technique is called histogram specification
Again, we will assume, for the moment, continuous grayvalues
Trang 61 Suppose, the input image has probability density pin(r) We want to find a transformation z = H(r), such that the probability density of the new image obtained by this transformation is pout(z), which is not
necessarily uniform
First apply the transformation
This gives an image with a uniform probability density
61
in , 0 1 *
r o
r dw
w p
r T s
Trang 62 If the desired output image were available, then the following
transformation would generate an image with uniform density:
From the grayvalues we can obtain the grayvalues z by using the inverse transformation, z = G– 1( )
out , 0 1 * *
z o
z dw
w p
z G
Trang 63 If instead of using the grayvalues n obtained from (**), we use the
grayvalues s obtained from (*) above (both are uniformly distributed!), then the point transformation
0 for ,
0 out
z p
z G
L
k n
n r
T s
k i
i k
k
k i
i k
k
Trang 64 If the transformation zk G(zk) is one-to-one, the inverse
transformation sk G– 1(sk), can be easily determined, since we are dealing with a small set of discrete grayvalues
In practice, this is not usually the case (i.e., zk G(zk) is not one) and we assign grayvalues to match the given histogram, as
one-to-closely as possible
Trang 65 Consider the previous 8-graylevel 64 x 64 image histogram:
Trang 66 It is desired to transform this image into a new image, using a
transformation z=H(r)= G– 1[T(r)], with histogram as specified below:
Trang 67 The transformation T(r) was obtained earlier (reproduced below):
Trang 68 Next we compute the transformation G as before
7
1 15 0
0 00 0
0 00 0
0 00 0
5 out 1
out 0
out
5 out 5
5
4 out 1
out 0
out 4
0 out 4
4
3 out 1
out 0
out 3
0 out 3
3
2 out 1
out 0
out 2
0 out 2
2
1 out 0
out 1
0 out 1
1
0 out 0
0 out 0
p z p z p z
G
z p z
p z p z p z
G
z p z
p z p z p z
G
z p z p z p z p z
G
z p z p z p z
G
z p z p z
Trang 69 Notice that G is not invertible But we will do the best possible by
setting
o G– 1 (0) = ? (This does not matter since s 0)
o G– 1 (1/7) = 3/7
o G– 1 (2/7) = 4/7 (This does not matter since s 2/7)
o G– 1 (3/7) = 4/7 (This is not defined, but we use a close match)
o G– 1 (4/7) = ? (This does not matter since s 4/7)
o G– 1 (5/7) = 5/7
o G– 1 (6/7) = 6/7
o G– 1 (1) = 1
69
Trang 70 Combining the two transformation T and G– 1, we get our required
Trang 71 Applying the transformation H to the original image yields an image
with histogram as below:
71
(actual hist.)
pout(zk) (spec hist.)
Trang 73 Again, the actual histogram of the output image does not exactly but only approximately matches with the specified histogram This is
because we are dealing with discrete histograms
73
Trang 7575
Histogram equalized image Actual histogram of output
Trang 77 Used to enhance details over small portions of the image
Define a square or rectangular neighborhood, whose center moves from pixel to pixel
Compute local histogram based on the chosen neighborhood for
each point and apply a histogram equalization or histogram
specification transformation to the center pixel
Non-overlapping neighborhoods can also be used to reduce
computations But this usually results in some artifacts
(checkerboard like pattern)
77
Trang 78 Another use of histogram information in image enhancement is the
statistical moments associated with the histogram (recall that the
histogram can be thought of as a probability density function)
For example, we can use the local mean and variance to
determine the local brightness/contrast of a pixel This information can then be used to determine what, if any transformation to apply
to that pixel
Note that local histogram based operations are non-uniform in the
sense that a different transformation is applied to each pixel