Dip3

78
Image Enhancement Prof. Duong Anh Duc

description

Xu ly anh va thi giac may tinh

Transcript of Dip3

Page 1: Dip3

Image Enhancement

Prof. Duong Anh Duc

Page 2: Dip3

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)]

Page 3: Dip3

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

Page 4: Dip3

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].

Page 5: Dip3

5

Image Negative

T(r) = s = L – 1 – r, L: max grayvalue

Page 6: Dip3

6

Negative Image

Page 7: Dip3

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].

Page 8: Dip3

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.

Page 9: Dip3

9

Contrast Stretching

Page 10: Dip3

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

Page 11: Dip3

11

Contrast Stretching

Gamma correction

Page 12: Dip3

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)

Page 13: Dip3

13

Compression of Dynamic Range

Saturn Image Mag. Spectrum Mag. Spectrum

in log scale

Page 14: Dip3

14

Compression of Dynamic Range

Graylevel Slicing: Highlight a specific range of grayvalues.

Page 15: Dip3

15

Compression of Dynamic Range

Example:

Original Image

Highlighted Image (no background)

Highlighted Image (with background)

Page 16: Dip3

16

Compression of Dynamic Range

Bitplane Slicing: Display the different bits as individual binary images.

Page 17: Dip3

17

Compression of Dynamic Range

Page 18: Dip3

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

Page 19: Dip3

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

Page 20: Dip3

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

Page 21: Dip3

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

,

Page 22: Dip3

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

,,

Page 23: Dip3

23

Image Averaging Example

Noise-free Image Noisy Image Noise Variance = 0.05

Page 24: Dip3

24

Image Averaging Example

M =2 M =5

Page 25: Dip3

25

Image Averaging Example

M =10 M =25

Page 26: Dip3

26

Image Averaging Example

M =50 M =100

Page 27: Dip3

27

Some Averaging Filters

Page 28: Dip3

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

Page 29: Dip3

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)

Page 30: Dip3

30

Some Typical Histograms

The shape of a histogram provides useful information for contrast enhancement.

Page 31: Dip3

31

Some Typical Histograms (cont.)

The shape of a histogram provides useful information for contrast enhancement.

Page 32: Dip3

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

Page 33: Dip3

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).

Page 34: Dip3

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).

Page 35: Dip3

35

Histogram Equalization

Page 36: Dip3

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.

Page 37: Dip3

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

Page 38: Dip3

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

Page 39: Dip3

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

Page 40: Dip3

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

Page 41: Dip3

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.

Page 42: Dip3

42

Example: Histogram Equalization

Original image poutafter histogram equalization

Page 43: Dip3

43

Example: Histogram Equalization

Page 44: Dip3

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

Page 45: Dip3

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

Page 46: Dip3

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

Page 47: Dip3

47

Example(cont.)

Page 48: Dip3

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

Page 49: Dip3

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

Page 50: Dip3

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.

Page 51: Dip3

51

Example(cont.)

Original image Equalized image

Page 52: Dip3

52

Example(cont.)

Histogram of original image Histogram of equalized image

Page 53: Dip3

53

Example(cont.)

Original image Equalized image

Page 54: Dip3

54

Example(cont.)

Histogram of original image Histogram of equalized image

Page 55: Dip3

55

Example(cont.)

Original image Equalized image

Page 56: Dip3

56

Example(cont.)

Histogram of original image Histogram of equalized image

Page 57: Dip3

57

Example(cont.)

Original image Equalized image

Page 58: Dip3

58

Example(cont.)-Histograms

Histogram of original image Histogram of equalized image

Page 59: Dip3

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.”

Page 60: Dip3

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.

Page 61: Dip3

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

Page 62: Dip3

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

Page 63: Dip3

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

Page 64: Dip3

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.

Page 65: Dip3

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

Page 66: Dip3

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

Page 67: Dip3

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

Page 68: Dip3

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

Page 69: Dip3

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

Page 70: Dip3

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

Page 71: Dip3

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

Page 72: Dip3

72

Ex.: Histogram Specification

Page 73: Dip3

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.

Page 74: Dip3

74

Example

Original image and its histogram

Page 75: Dip3

75

Example

Histogram equalized image Actual histogram of output

Page 76: Dip3

76

Example

Histogram specified image, Actual Histogram, and Specified Histogram

Page 77: Dip3

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).

Page 78: Dip3

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.