Histogram processing

69
DIGITAL IMAGE PROCESSING IMAGE ENHANCEMENT Histogram Processing by Paresh Kamble

description

This slide show explains the concept of histogram processing.

Transcript of Histogram processing

Page 1: Histogram processing

DIGITAL IMAGE PROCESSING

IMAGE ENHANCEMENTHistogram Processing

by Paresh Kamble

Page 2: Histogram processing

Histogram Processing

Histogram:It is a plot of frequency of occurrence of an event.

freq. of

occurrence

0 1 2 3 event

Page 3: Histogram processing

Histogram Processing

Histogram of images provide a global description of their appearance.

Enormous information is obtained.

It is a spatial domain technique.

Histogram of an image represents relative frequency of occurrence of various gray levels.

Histogram can be plotted in two ways:

Page 4: Histogram processing

Histogram Processing

First Method:

X-axis has gray levels & Y-axis has No. of pixels in each gray levels.

nk

Gray Level No. of Pixels (nk) 40

0 40 301 202 10 3 15 204 105 3 6 2 10

0 1 2 3 4 5 6 Gray Levels

Page 5: Histogram processing

Histogram Processing

Second Method: X-axis has gray levels & Y-axis has probability of occurrence of

gray levels.P(µk) = nk / n; where, µk – gray level

nk – no. of pixels in kth gray leveln – total number of pixels in an image

Prob. Of Occurrence 1

0.8

Gray Level No. of Pixels (nk) P(µk) 0.70 40 0.4 0.61 20 0.2 0.52 10 0.1 0.43 15 0.15 0.34 10 0.1 0.25 3 0.03 0.16 2 0.02

n = 100 1 0 1 2 3 4 5 6 µk

Page 6: Histogram processing

Histogram Processing

Advantage of 2nd method: Maximum value plotted will always be 1. White – 1, Black – 0. Great deal of information can be obtained just by looking at histogram. Types of Histograms:

P(µk) P(µk)

0 rk 0 rk

P(µk) P(µk)

0 rk 0 rk

Page 7: Histogram processing

Histogram Processing

Advantage of 2nd method: Maximum value plotted will always be 1. White – 1, Black – 0. Great deal of information can be obtained just by looking at histogram. Types of Histograms:

P(µk) Dark Image P(µk) Bright Image

0 rk 0 rk

P(µk) Low Contrast Image P(µk) Equalized Image

0 rk 0 rk

Page 8: Histogram processing

Histogram Processing

The last graph represent the best image.

It is a high contrast image.

Our aim would be to transform the first 3 histograms into the 4th type.

In other words we try to increase the dynamic range of the image.

Page 9: Histogram processing

Histogram Stretching1) Linear stretching: Here, we don’t alter the basic shape. We use basic equation of a straight line having a slope.

(Smax - Smin)/(rmax - rmin)Where, Smax – max gray level of output imageSmin – min gray level of output imagermax – max gray level of input imagermin – min gray level of input image

0 min max 0 min max

Page 10: Histogram processing

Histogram Processing

S = T(r) = ((Smax - Smin)/(rmax - rmin))(r - rmin) + Smin

Smax

Smin

rmin rmax

Page 11: Histogram processing

Histogram Processing

Ex. 1) Perform Histogram Stretching so that the new image has a dynamic range of 0 to 7 [0, 7].

Gray Levels 0 1 2 3 4 5 6 7

No. of Pixels 0 0 50 60 50 20 10 0

Page 12: Histogram processing

Histogram Processing

Ex. 1) Perform Histogram Stretching so that the new image has a dynamic range of 0 to 7 [0, 7].

Gray Levels 0 1 2 3 4 5 6 7

No. of Pixels 0 0 50 60 50 20 10 0Soln:- rmin = 2; rmax = 6; smin = 0; smax = 7;

slope = ((smax – smin)/(rmax - rmin)) = ((7 - 0)/(6 - 2)) = 7 / 4 = 1.75.

S = (7 / 4)(r - 2) + 0; r (7 / 4)(r - 2) = SS = (7 / 4)(r - 2)

2 0 = 03 7/4 = 1.75 = 24 7/2 = 3.5 = 45 21/4 = 5.25 = 56 7 = 7

Page 13: Histogram processing

Histogram Processing

Ex. 1) Perform Histogram Stretching so that the new image has a dynamic range of 0 to 7 [0, 7].

Gray Levels 0 1 2 3 4 5 6 7

No. of Pixels 50 0 60 0 50 20 0 10

60 6050 5040 4030 30

20 2010 10

0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7

Page 14: Histogram processing

Histogram Processing

Ex. 2) Perform Histogram Stretching so that the new image has a dynamic range of 0 to 7 .

Gray Levels 0 1 2 3 4 5 6 7

No. of Pixels 100 90 85 70 0 0 0 0

Page 15: Histogram processing

Histogram Processing

Ex. 2) Perform Histogram Stretching so that the new image has a dynamic range of 0 to 7 .

Gray Levels 0 1 2 3 4 5 6 7

No. of Pixels 100 0 90 0 0 85 0 70

Dynamic range increasesBUT

No. of pixels at each gray level remains constant.

Page 16: Histogram processing

Histogram Equalization

2) Histogram Equalization:

o Linear stretching is a good technique but not perfect since the shape remains the same.

o Most of the time we need a flat histogram.

o It can’t be achieved by Histogram Stretching.

o Thus, new technique of Histogram Equalization came into use.

o Perfect image is one where all gray levels have equal number of pixels.

o Here, our objective is not only to spread the dynamic range but also to have equal pixels at all gray levels.

Page 17: Histogram processing

Histogram Equalization

nk Normal Histogram

r

nk Equalized Histogram nk Linearly Stretched Histogram

S S

Page 18: Histogram processing

Histogram Equalization

o We have to search for a transform that converts any random histogram into flat histogram.

o S = T(r)

o We have to find ‘T’ which produces equal values in each gray levels.

o The Transform should satisfy following 2 conditions:

(i) T(r) must be single value & monotonically increasing in the interval, 0 ≤ r ≤ 1.

(ii) 0 ≤ T(r) ≤ 1 for 0 ≤ r ≤ 10 ≤ S ≤ 1 for 0 ≤ r ≤ 1

Here, range of r is [0, 1] (Normalized range) instead of [0, 255].

Page 19: Histogram processing

Histogram Equalization

These two conditions mean:

1) If T(r) is not single value:

S T(r) S T(r)S2

S1 S1

r1 r2 r r1 r2 rfig. (a) fig. (b)

Page 20: Histogram processing

Histogram Equalization

In fig.(a) r1 & r2 are mapped as single gray level i.e. S1.

Two different gray levels occupy same in modified image.

Big Drawback!

Hence, transformation has to be single value.

This preserves order from black to white.

A gray level transformation with single value and monotonically increasing is shown in fig.(b).

2) If condition (ii) is not satisfied then mapping will not be consistent with the allowed range of pixel value.

S will go beyond the valid range.

Page 21: Histogram processing

Histogram Equalization

Since, the Transformation is single value & monotonically increasing, the inverse Transformation exists.

r = T-1(S) ; 0 ≤ S ≤ 1

Gray levels for continuous variables can be characterized by their probability density Pr(r) & Ps(S).

From Probability theory, we know that, If Pr(r) & Ps(S) are known & if T-1(S) satisfies condition (i) then the

probability density of the transferred gray level is

Ps(S) = [Pr(r). dr/ ds] r = T-1

(S) ----(a)

Prob. Density (Transformed Image) = Prob. Density (Original Image)x

inv. Slope of transformation

Page 22: Histogram processing

Histogram Equalization

Now lets find a transform which would give us a flat histogram.

Cumulative Density Function (CDF) is preferred.

CDF is obtained by simply adding up all the PDF’s.

S = T(r)

r

S = § Pr(r) dr ; 0 ≤ r ≤ 10

diff. wrt. r

ds / dr = Pr(r) ---------(b)

Equating eqn(a) & eqn(b), we getPs(s) = *1+ ; 0 ≤ S ≤ 1

i.e. Ps(s) = 1

Page 23: Histogram processing

Histogram Equalization

A bad Histogram becomes a flat histogram when we find the CDF.

Pr(r) Ps(s)1 1

0 1 f 0 1 SNon-Uniform Function Uniform Function

CDFPr(r) dr

Page 24: Histogram processing

Histogram Equalization

NOTE: If ‘n’ is total no. of pixels in an image, then PDF is given by:

Pr(rk) = nk / n;

In frequency domain,

r

S = T(r) = § Pr(rk) dr0

In discrete domain,

r

Sk = T(rk) = Pr(rk) (CDF)k=0

Page 25: Histogram processing

Histogram Equalization

Prob. 1) Equalize the given histogram

Gray Levels (r) 0 1 2 3 4 5 6 7

No. of Pixels 790 1023 850 656 329 245 122 81

nk 1000

900

800700

600

500

400300

200

100

0 1 2 3 4 5 6 7 r

Page 26: Histogram processing

Histogram Equalization

Gray Levels (rk)

No. of Pixels nk

(PDF)Pr(rk) = nk/n

(CDF)Sk = Pk(rk)

(L-1) Sk = 7 x Sk Rounding off

0 790 0.19 0.19 1.33 1

1 1023 0.25 0.44 3.08 3

2 830 0.21 0.65 4.55 5

3 656 0.16 0.81 5.67 6

4 329 0.08 0.89 6.23 6

5 245 0.06 0.95 6.65 7

6 122 0.03 0.98 6.86 7

7 81 0.02 1 7 7

n = 4096 1

Equating Gray Levels to No. of Pixels:0 -> 0 4 -> 01 -> 790 5 -> 8502 -> 0 6 -> 9853 -> 1023 7 -> 448 Total : 4096 Hence Verified!!!

Page 27: Histogram processing

Histogram Equalization

Equalized Histogram:

Gray Levels (S) 0 1 2 3 4 5 6 7

No. of Pixels 0 790 0 1023 0 850 985 448

Total: 4096nk 1000

900

800700

600

500

400300

200

100

0 1 2 3 4 5 6 7 r

Page 28: Histogram processing

Histogram Equalization

Prob. 2) Equalize the given histogram

Gray Levels (r) 0 1 2 3 4 5 6 7

No. of Pixels 100 90 50 20 0 0 0 0

nk 100

90

8070

60

50

4030

20

10

0 1 2 3 4 5 6 7 r

Page 29: Histogram processing

Histogram Equalization

Prob. 3) Equalize the above histogram twice.

Gray Levels (r) 0 1 2 3 4 5 6 7

No. of Pixels 0 0 0 100 0 90 50 20

nk 100

90

8070

60

50

4030

20

10

0 1 2 3 4 5 6 7 r

Page 30: Histogram processing

Histogram Equalization

Prob. 3) Equalize the above histogram twice.

Gray Levels (r) 0 1 2 3

No. of Pixels 70 20 7 3

nk 100

90

8070

60

50

4030

20

10

0 1 2 3 r

Page 31: Histogram processing

Histogram Equalization

Prob. 1) What effect would setting to zero the lower order bit plane have on the histogram of an image shown?

0 1 2 3no. of

4 5 6 7 pixels1

8 9 10 11

12 13 14 15

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15no. of levels

Page 32: Histogram processing

Histogram Equalization

Prob. 1) What effect would setting to zero the lower order bit plane have on the histogram of an image shown?

0 1 2 3

4 5 6 7

8 9 10 11 0000 0001 0010 0011

12 13 14 15 0100 0101 0110 0111

1000 1001 1010 1011

1100 1101 1110 1111

Page 33: Histogram processing

Histogram Equalization

Prob. 1) What effect would setting to zero the lower order bit plane have on the histogram of an image shown?

0 1 2 3

4 5 6 7

8 9 10 11 0000 0001 0010 0011

12 13 14 15 0100 0101 0110 0111

1000 1001 1010 1011 0000 0000 0000 0000

1100 1101 1110 1111 0100 0100 0100 0100

1000 1000 1000 1000

1100 1100 1100 1100

Setting lower order bit plane to zero.

Page 34: Histogram processing

Histogram Equalization

Prob. 1) What effect would setting to zero the lower order bit plane have on the histogram of an image shown?

0 0 0 00 1 2 3

4 4 4 44 5 6 7

8 8 8 88 9 10 11 0000 0001 0010 0011

12 12 12 1212 13 14 15 0100 0101 0110 0111

1000 1001 1010 1011 0000 0000 0000 0000

1100 1101 1110 1111 0100 0100 0100 0100

1000 1000 1000 1000

1100 1100 1100 1100

Setting lower order bit plane to zero.

Page 35: Histogram processing

Histogram Equalization

Prob. 1) What effect would setting to zero the lower order bit plane have on the histogram of an image shown?

0 0 0 00 1 2 3

4 4 4 44 5 6 7

8 8 8 88 9 10 11

12 12 12 1212 13 14 15

0000 0000 0000 0000

4

0100 0100 0100 0100

1000 1000 1000 1000

1100 1100 1100 1100

no. of pixels

no. of levels0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Page 36: Histogram processing

Histogram Equalization

Prob. 2) What effect would setting to zero the higher order bit plane have on the histogram of an image shown? Comment on the image.

0 1 2 3

4 5 6 7

8 9 10 11

12 13 14 15

Page 37: Histogram processing

Histogram Equalization

Prob. 3) Given below is the slope transformation & the image. Draw the frequency tables for the original & the new image. Assume Imin=0, Imax = 7

2 3 4 2

5 5 2 4I

3 6 3 5 Imax

6 3 5 5

Imin

mmin mmax µ

Page 38: Histogram processing

Frequency Domain

2-D Discrete Fourier Transform & Its Inverse:

If f(x, y) is a digital image of size M X N then its Fourier Transform is given by:

M-1 N-1

F(u, v) = f(x, y) e -j2π(ux/M + vy/N) -----------(1)x=0 y=0

for u = 0, 1, 2, ……., M-1 & v = 0, 1, 2, …….., N-1.

Given the transform F(u, v), we can obtain f(x, y) by using Inverse discrete Fourier Transform (IDFT):

M-1 N-1

f(x, y) = (1/MN) F(u, v) e j2π(ux/M + vy/N) ------------(2)u=0 v=0

for x = 0, 1, 2, ….M-1 & y = 0, 1, 2, ….., N-1Eqn. (1) & (2) constitute the 2-D discrete Fourier transform pair.

Page 39: Histogram processing

Frequency Domain

2-D convolution Theorem:

The expression of circular convolution is extended for 2-D is given below:

M-1 N-1

f(x, y)*h(x, y) = f(m, n)h(x-m, y-n) -----------(3)m=0 n=0

for x = 0, 1, 2, ….M-1 & y = 0, 1, 2, …..N-1

The 2-D convolution theorem is given by the expressions

f(x, y) ¤ h(x, y) F(u, v) x H(u, v) --------------(4)

and conversely

f(x, y) x h(x, y) F(u, v) ¤ H(u, v) ---------------(5)

Page 40: Histogram processing

Frequency Domain

Prob 4) Find the convolution of an image x(m, n) & h(m, n) shown in the fig. below: y(p, q) = x(m1, n1) ¤ h(m2, n2)

0 -1 1 1 1

-1 4 -1 1 -12x2 (m, n)

0 -1 0 3x3 (m, n)

Page 41: Histogram processing

Frequency Domain

Prob 4) Find the convolution of an image x(m, n) & h(m, n) shown in the fig. below: y(p, q) = x(m1, n1) ¤ h(m2, n2)

0 -1 1 1 1

-1 4 -1 1 -1origin 2x2 (m2, n2)

0 -1 0 3x3 (m1, n1)

p = m1 + m2 -1 q = n1 + n2 -1= 3 + 2 -1 = 3 + 2 -1= 4 columns = 4 rows

Resultant image dimension is 4x4.

Page 42: Histogram processing

Frequency Domain

x(m, n) h(m, n)0 -1 1 1 1

-1 4 -1 1 -1

0 -1 0

h(m, -n) h(-m, -n)1 1

-1 1 -1 1

1 1

Page 43: Histogram processing

Frequency Domain

x(m, n) h(-m, -n)0 -1 1

-1 4 -1 -1 1

0 -1 0 1 1

y(0, 0)

4

Page 44: Histogram processing

Frequency Domain

x(m, n) h(1-m, -n)0 -1 1

-1 4 -1 -1 1

0 -1 0 1 1

4 -6

y(1, 0)

Page 45: Histogram processing

Frequency Domain

x(m, n) h(2-m, -n)0 -1 1

-1 4 -1 0 -1 1

0 -1 0 0 1 1

4 -6 1

y(2, 0)

Page 46: Histogram processing

Frequency Domain

x(m, n) h(3-m, -n)0 -1 1

-1 4 -1 0 0 -1 1

0 -1 0 0 0 1 1

4 -6 1 0

y(3, 0)

Page 47: Histogram processing

Frequency Domain

x(m, n) h(-m, 1-n)0 -1 1 -1 1

-1 4 -1 1 1

0 -1 0

2

4 -6 1

y(0, 1)

Page 48: Histogram processing

Frequency Domain

x(m, n) h(-m, 2-n)0 -1 1 -1 1

-1 4 -1 1 1

0 -1 0 0 0

-1

2

4 -6 1

y(0, 2)

Page 49: Histogram processing

Frequency Domain

x(m, n) h(1-m, 1-n)0 -1 1

-1 4 -1 -1 1

0 -1 0 1 1

y(1, 1) -1

2 5

4 -6 1

Page 50: Histogram processing

Frequency Domain

x(m, n) h(1-m, 2-n)0 -1 1 -1 1

-1 4 -1 1 1

0 -1 0 0 0

y(1, 2) -1 0

2 5

4 -6 1

Page 51: Histogram processing

Frequency Domain

x(m, n) h(2-m, 1-n)0 -1 1

-1 4 -1 0 -1 1

0 -1 0 0 1 1

y(2, 1) -1 0

2 5 -2

4 -6 1

Page 52: Histogram processing

Frequency Domain

x(m, n) h(2-m, 2-n)0 -1 1 0 -1 1

-1 4 -1 0 1 1

0 -1 0 0 0 0

y(2, 2) -1 0 1

2 5 -2

4 -6 1

Page 53: Histogram processing

Frequency Domain

x(m, n) h(-1-m, -n)0 -1 1 -1 1

-1 4 -1 1 1

0 -1 0

y(-1, 0) -1 0 1

2 5 -2

-1 4 -6 1

Page 54: Histogram processing

Frequency Domain

x(m, n) h(-1-m, 1-n)0 -1 1 -1 1

-1 4 -1 1 1

0 -1 0

y(-1, 1) -1 0 1

-1 2 5 -2

-1 4 -6 1

Page 55: Histogram processing

Frequency Domain

x(m, n) h(-1-m, 2-n)0 -1 1 -1 1

-1 4 -1 1 1

0 -1 0 0 0

y(-1, 2) 0 -1 0 1

-1 2 5 -2

-1 4 -6 1

Page 56: Histogram processing

Frequency Domain

x(m, n) h(-1-m, -1-n)0 -1 1 -1 1

-1 4 -1 1 1

0 -1 0

y(-1, -1) 0 -1 0 1

-1 2 5 -2

-1 4 -6 1

0

Page 57: Histogram processing

Frequency Domain

x(m, n) h(-m, -1-n)0 -1 1 -1 1

-1 4 -1 1 1

0 -1 0

y(0, -1) 0 -1 0 1

-1 2 5 -2

-1 4 -6 1

0 -1

Page 58: Histogram processing

Frequency Domain

x(m, n) h(1-m, -1-n)0 -1 1 -1 1

-1 4 -1 1 1

0 -1 0

y(1, -1) 0 -1 0 1

-1 2 5 -2

-1 4 -6 1

0 -1 1

Page 59: Histogram processing

Frequency Domain

x(m, n) h(2-m, -1-n)0 -1 1 0 -1 1

-1 4 -1 0 1 1

0 -1 0

y(2, -1) 0 -1 0 1

-1 2 5 -2

-1 4 -6 1

0 -1 1 0

Page 60: Histogram processing

Frequency Domain

x(m, n) h(-m, -n)0 -1 1 -1 1

-1 4 -1 1 1

0 -1 0

y(m, n) 0 -1 0 1

-1 2 5 -2

-1 4 -6 1

0 -1 1 0

Page 61: Histogram processing

Frequency Domain

Homomorphic Filtering:Illumination-Reflectance model for an image f(x, y) is given by:

f(x, y) = i(x, y)r(x, y) ------------(1)where, i(x, y) – illumination

r(x, y) – reflectance

It is used to develop a frequency domain procedure for improving image appearance by :(i) simultaneous intensity range compression and (ii) contrast enhancement.

Eqn (1) cant be directly operated on the frequency components of illumination & reflectance

This is because F*f(x, y)+ ≠ F*i(x, y)]F[r(x, y)]

However, if we define z(x, y) = In f(x, y)

= ln i(x, y) + ln r(x, y)

Page 62: Histogram processing

Frequency Domain

Then F{z(x, y)} = F{ln f(x, y)}= F{ln i(x, y)} + F{ln r(x, y)}

Or

Z(u, v) = Fi(u, v) + Fr(u, v)

Where Fi(u, v) & Fr(u, v) are FT of ln i(x, y) & r(x, y) resp.

We can filter Z(u, v) by using a filter H(u, v) so that

S(u, v) = H(u, v)Z(u, v)= H(u, v) Fi(u, v) + H(u, v) Fr(u, v)

Filtered image in spatial domain is s(x, y) = F-1{S(u, v)}

= F-1{H(u, v) Fi(u, v)} + F-1{H(u, v) Fr(u, v)}

Page 63: Histogram processing

Frequency Domain

Defining i’(x, y) = F-1{H(u, v) Fi(u, v)}

andr’(x, y) = F-1{H(u, v) Fr(u, v)}

We can express it in form s(x, y) = i’(x, y) + r’(x, y)

Finally, we reverse the process by taking the exponential of the filtered result to form the output image:

g(x, y) = es(x, y)

= ei’(x, y) er’(x, y)

= i0(x, y) r0(x, y)

Where, i0(x, y) & r0(x, y) are the illumination and reflectance components of the output (processed) image.

Page 64: Histogram processing

Frequency Domain

f(x, y) g(x, y)

This method is based on special case of a class of systems known as Homomorphic systems.

ln DFT H(u, v) (DFT)-1 exp

Page 65: Histogram processing

Question Bank of Unit-3

Q.1) Explain Histogram Processing?

Q.2) Why an ideal LPF not suitable for smoothing operation? Explain how the Gaussian LPF overcomes the drawback of ideal LPF.

Q.3) Write in short about Minimum Mean Square Error (Wiener) filtering.

Q.4) Suppose F(u, v) is a 2D Fourier transform of an image f(x, y) and a new function G(u, v) is obtained as G(u, v) = f(u/2, v/2). What would be the image g(x, y) after taking the Inverse Fourier transform of G(u, v)?

Q.5) Write a short note on Histogram Equalization.

Q.6) Write a short note on Bit Plane Slicing.

Q.7) Write a short note on Order Statistics Filter.

Page 66: Histogram processing

Question Bank of Unit-3

Q.8) The Gray level histogram of an image is given below:

Gray Level 0 1 2 3 4 5 6 7

Frequency of occurrence 400 700 1350 2500 3000 1500 550 0

Compute the Gray level histogram of the output image obtained by enhancing the input by histogram equalization technique. [7m]

Q.9) What is Histogram Matching? Explain. [5m]

Q.10) What are the advantages and disadvantages of median filter? Obtain output image by applying 3 x 3 median filter on the following image. [8m]

[ 2 4 15 0][ 3 5 2 6][11 0 2 10][ 6 16 0 2]

Page 67: Histogram processing

Question Bank of Unit-3

Q.11) Write a short note on different Gradient filters.

Q.12) Explain the following terms in significant details in reference to image enhancement in spatial domain:(i) Contrast Stretching(ii) Histogram Equalization(iii) Bit Plane Slicing(iv) The Laplacian

Q.13) Explain Homomorphic filtering in frequency domain. [5m]

Q.14) The gray level histogram of an image is given below:Compute the gray histogram of the output image obtained by enhancing the

input by the histogram equalization technique. [9m]

Gray Level 0 1 2 3 4 5 6 7Freq. of Occurrence 123 78 281 417 639 1054 816 688

Page 68: Histogram processing

Question Bank of Unit-3Q.15) Explain the principle objective of image enhancement process in spatial

domain process.

Q.16) Explain image subtraction, image averaging and image smoothing through smoothing linear filter.

Q.17) A short note on Median Filtering.

Page 69: Histogram processing

End of Unit-3