Dip3

Post on 13-Jan-2015

497 views 0 download

Tags:

description

Xu ly anh va thi giac may tinh

Transcript of Dip3

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.