dip3
DESCRIPTION
Xu ly anh va thi giac may tinhTRANSCRIPT
Image Enhancement
Prof. Duong Anh Duc
2
Image Enhancement
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: o Spatial domain: operate on the original image
g (m, n) = T [f (m, n)] o Frequency domain: operate on the DFT of the original image
G (u, v) = T [F (u, v)]
where F(u, v) = F [f(m, n)], and G(u, v) = F [g(m, n)]
3
Image Enhancement Techniques
Image Enhancement Techniques
Point Operations Mask Operations Transform Operations Coloring Operations
• Image Negative • Contrast
Stretching • Compression of
dynamic range • Graylevel slicing • Image
Subtraction • Image Averaging • Histogram
operations
• Smoothing operations
• 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
4
Point Operations
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.
T is any increasing function that maps [0,1] into [0,1].
5
Image Negative
T(r) = s = L – 1 – r, L: max grayvalue
6
Negative Image
7
Contrast Stretching
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].
8
Contrast Stretching
Special cases: o Thresholding or binarization
r1 = r2 , s1 = 0 and s2 = 1o Useful when we are only
interested in the shape of the objects and on their actual grayvalues.
9
Contrast Stretching
10
Contrast Stretching
Special cases (cont.): o Gamma correction:
s1 = 0, s2 = 1 and
2
2112
1
1
,1
,
,0
rr
rrrrr
rr
rr
rTg
11
Contrast Stretching
Gamma correction
12
Compression of Dynamic Range
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)
13
Compression of Dynamic Range
Saturn Image Mag. Spectrum Mag. Spectrum
in log scale
14
Compression of Dynamic Range
Graylevel Slicing: Highlight a specific range of grayvalues.
15
Compression of Dynamic Range
Example:
Original Image
Highlighted Image (no background)
Highlighted Image (with background)
16
Compression of Dynamic Range
Bitplane Slicing: Display the different bits as individual binary images.
17
Compression of Dynamic Range
18
Image Subtraction
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
19
Example: Mask mode radiography
f1(m, n): Image before dye injection f2(m, n): Image after dye injection
g(m, n): Image after dye injection, followed by subtraction
20
Image Averaging for noise reduction
Noise is any random (unpredictable) phenomenon that contaminates an image.
Noise is inherent in most practical systems: o Image acquisition o Image transmission o Image recording
Noise is typically modeled as an additive process:
g (m,n) = f (m, n) + (m, n)
Noisy Image
Noise-free Image
Noise
21
Image Averaging for noise reduction
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”
M
ii nmg
Mnmg
1
,1
,
22
Image Averaging for noise reduction
In this case, we can show that:
Therefore, as the number of observations increases (M ), the effect of noise tends to zero.
nmM
nmg
nmfnmgE
,Var1
,Var
,,
23
Image Averaging Example
Noise-free Image Noisy Image Noise Variance = 0.05
24
Image Averaging Example
M =2 M =5
25
Image Averaging Example
M =10 M =25
26
Image Averaging Example
M =50 M =100
27
Some Averaging Filters
28
Histograms
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 image.
imagein pixels# total
e with valupixels# where,
n
rn
n
nrp kkk
k
29
Histograms
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)
30
Some Typical Histograms
The shape of a histogram provides useful information for contrast enhancement.
31
Some Typical Histograms (cont.)
The shape of a histogram provides useful information for contrast enhancement.
32
Example: Histogram Stretching
The original image displayed
The stretched image
0 0.5 1
0
5000
10000
The histogram of the original image
0 0.5 1
0
5000
10000
The stretched histogram
33
Histogram Equalization
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).
34
Histogram Equalization
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:
o T(r) is a monotonically increasing function for 0 r 1 (preserves order from black to white)
o T(r) maps [0,1] into [0,1] (preserves the range of allowed grayvalues).
35
Histogram Equalization
36
Histogram Equalization
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.
37
Histogram Equalization
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
[0, 1], i.e.
pout(s)=1, 0 s 1
sTr
inout ds
drrpsp
1
38
Histogram Equalization
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
rdwwprTs 10,in
39
Histogram Equalization
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,
rpdr
dsin
40
Histogram Equalization
Therefore, the output histogram is given by
The output probability density function is uniform, regardless of the input.
10for ,11
1
1
1
s
rprpsp
sTr
sTrininout
41
Histogram Equalization
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.
42
Example: Histogram Equalization
Original image poutafter histogram equalization
43
Example: Histogram Equalization
44
Histogram Equalization
For images with discrete grayvalues, we have
o L: Total number of graylevels
o nk: Number of pixels with grayvalue rk
o n: Total number of pixels in the image
10 and ,10for ,in Lkrn
nrp k
k
45
Histogram Equalization
The discrete version of the previous transformation based on CDF is given by:
10for ,0
in0
Lkrpn
nrTs
k
ii
k
i
ikk
46
Consider an 8-level 64 x 64 image with grayvalues (0, 1, …, 7).
The normalized grayvalues are (0, 1/7, 2/7, …, 1). The normalized histogram is given in the table:
k rk nk
p(rk)=nk / n
0 0 790 0.19
1 1/7 1023 0.25
2 2/7 850 0.21
3 3/7 656 0.16
4 4/7 329 0.08
5 5/7 245 0.06
6 6/7 122 0.03
7 1 81 0.02
Example
47
Example(cont.)
48
Example(cont.)
Applying the previous transformation, we have (after rounding off to nearest graylevel):
Notice that there are only five distinct graylevels ---
(1/7, 3/7, 5/7, 6/7, 1) in the output image. We will
relabel them as (s0, s1, …, s4).
100.1
198.0
195.0
7689.0
7681.0
7565.0
7344.0
7119.0
7in1in0in
7
0in77
6in1in0in
6
0in66
5in1in0in
5
0in55
4in1in0in
4
0in44
3in1in0in
3
0in33
2in1in0in
2
0in22
1in0in
1
0in11
0in
0
0in00
rprprprprTs
rprprprprTs
rprprprprTs
rprprprprTs
rprprprprTs
rprprprprTs
rprprprTs
rprprTs
ii
ii
ii
ii
ii
ii
ii
ii
49
Example(cont.)
With this transformation, the output image will have histogram
k sk nk p(sk)=nk / n
0 1/7 790 0.19
1 3/7 1023 0.25
2 5/7 850 0.21
3 6/7 985 0.24
4 1 448 0.11
50
Example(cont.)
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.
51
Example(cont.)
Original image Equalized image
52
Example(cont.)
Histogram of original image Histogram of equalized image
53
Example(cont.)
Original image Equalized image
54
Example(cont.)
Histogram of original image Histogram of equalized image
55
Example(cont.)
Original image Equalized image
56
Example(cont.)
Histogram of original image Histogram of equalized image
57
Example(cont.)
Original image Equalized image
58
Example(cont.)-Histograms
Histogram of original image Histogram of equalized image
59
Histogram Equalization
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.”
60
Histogram Specification
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.
61
Histogram Specification
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.
*10,in r
o
rdwwprTs
62
Histogram Specification
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().
**10,out z
o
zdwwpzG
63
Histogram Specification
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
z = H(r) = G– 1[T(r)]
will generate an image with the specified density pout(z), from an input
image with density pin(r) For discrete graylevels, we have
10for ,
and 10for ,
0out
0
LkzpzG
Lkn
nrTs
k
iikk
k
i
ikk
64
Histogram Specification
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-to-
one) and we assign grayvalues to match the given histogram, as closely as possible.
65
Ex.: Histogram Specification
Consider the previous 8-graylevel 64 x 64 image histogram:
k rk nk p(rk)=nk/n
0 0 790 0.191 1/7 1023 0.252 2/7 850 0.213 3/7 656 0.164 4/7 329 0.085 5/7 245 0.066 6/7 122 0.037 1 81 0.02
66
Ex.: Histogram Specification
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:
k zk pout(zk)
0 0 0.001 1/7 0.002 2/7 0.003 3/7 0.154 4/7 0.205 5/7 0.306 6/7 0.207 1 0.15
67
Ex.: Histogram Specification
The transformation T(r) was obtained earlier (reproduced below):
risk nk p(sk)
r0 s0 = 1/7 790 0.19
r1 s1 = 3/7 1023 0.25
r2 s2 = 5/7 850 0.21
r3,r4 s3 = 6/7 985 0.24
r5, r6,r7 s4=1 448 0.11
68
Next we compute the transformation G as before
100.1
7685.0
7565.0
7235.0
7115.0
000.0
000.0
000.0
7out1out0out
7
0out77
6out1out0out
6
0out66
5out1out0out
5
0out55
4out1out0out
4
0out44
3out1out0out
3
0out33
2out1out0out
2
0out22
1out0out
1
0out11
0out
0
0out00
zpzpzpzpzG
zpzpzpzpzG
zpzpzpzpzG
zpzpzpzpzG
zpzpzpzpzG
zpzpzpzpzG
zpzpzpzG
zpzpzG
ii
ii
ii
ii
ii
ii
ii
ii
Ex.: Histogram Specification
69
Ex.: Histogram Specification
Notice that G is not invertible. But we will do the best possible by setting
o G– 1 (0) = ? (This does not matter since s0)
o G– 1 (1/7) = 3/7o G– 1 (2/7) = 4/7(This does not matter since s2/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 s4/7)
o G– 1 (5/7) = 5/7o G– 1 (6/7) = 6/7o G– 1 (1) = 1
70
Ex.: Histogram Specification
Combining the two transformation T and G– 1, we get our required
transformation H
rT(r)=s sG–1(s)=z rG–1 [T(r)]=H(r)=z
r0 = 0 1/7 0 ? r0 = 0 z3= 3/7
r1 = 1/7 3/7 1/7 3/7 r1 = 1/7 z4= 4/7
r2 = 2/7 5/7 2/7 4/7 r2 = 2/7 z5= 5/7
r3 = 3/7 6/7 3/7 4/7 r3 = 3/7 z6= 6/7
r4 = 4/7 6/7 4/7 ? r4 = 4/7 z6= 6/7
r5 = 5/7 1 5/7 5/7 r5 = 5/7 z7= 1
r6 = 6/7 1 6/7 6/7 r6 = 6/7 z7= 1
r7 = 1 1 1 1 r7 = 1 z7= 1
71
Ex.: Histogram Specification
Applying the transformation H to the original image yields an image with histogram as below:
k zk nk
nk/n
(actual hist.)
pout(zk)
(spec. hist.)
0 0 0 0.00 0.001 1/7 0 0.00 0.002 2/7 0 0.00 0.003 3/7 790 0.19 0.154 4/7 1023 0.25 0.205 5/7 850 0.21 0.306 6/7 985 0.24 0.207 1 448 0.11 0.15
72
Ex.: Histogram Specification
73
Ex.: Histogram Specification
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.
74
Example
Original image and its histogram
75
Example
Histogram equalized image Actual histogram of output
76
Example
Histogram specified image, Actual Histogram, and Specified Histogram
77
Enhancement Using Local Histogram
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).
78
Enhancement Using Local Histogram
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.