- 110 Views
- Uploaded on
- Presentation posted in: General

Fundamentals of Computer Vision

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Lecture 5

Dr. Roger S. Gaborski

Roger S. Gaborski

Roger S. Gaborski

Roger S. Gaborski

Intensity image is simply

a matrix of numbers

We can summary this information

by only retaining the distribution

if gray level values:

PARTIAL IMAGE INFO:

117 83 59 59 68 77 84

94 82 67 62 70 83 86

85 81 71 65 77 89 86

82 76 67 72 90 97 86

66 54 68 104 121 107 85

46 58 89 138 165 137 91

38 80 147 200 211 187 138

40 80 149 197 202 187 146

56 76 114 159 181 160 113

An image shows the spatial

distribution of gray level values

Roger S. Gaborski

Plot of Pixel Count as a Function of Gray Level Value

Pixel

Count

Gray Level Value

Roger S. Gaborski

- Histogram consists of
- Peaks: high concentration of gray level values
- Valleys: low concentration
- Flat regions

Roger S. Gaborski

Histogram:

- Digital image
- L possible intensity levels in range [0,G]
- Defined: h(rk) = nk
- Where rk is the kth intensity level in the interval [0,G] and nk is the number of pixels in the image whose level is rk .
- G: uint8 255
uint16 65535

double 1.0

Roger S. Gaborski

- L levels in range [0, G]
- For example:
- 0, 1, 2, 3, 4, in this case G = 4, L = 5
- Since we cannot have an index of zero,
- In this example, index of:
Index 1 maps to gray level 0

2 maps to 1

3 maps to 2

4 maps to 3

5 maps to 4

- In this example, index of:

Roger S. Gaborski

- Normalized histogram is obtained by dividing elements of h(rk) by the total number of pixels in the image (n):
fork = 1, 2,…, L

p(rk) is an estimate of the probability of occurrence of intensity level rk

Roger S. Gaborski

- h = imhist( f, b )
- h is the histogram, h(rk)
- f is the input image
- b is the number of bins (default is 256)

- Normalized histogram

Roger S. Gaborski

Roger S. Gaborski

>> I = imread('Flags.jpg');

>> figure, imshow(I) % uint8

>> Im= im2double(I); % convert to double

>> Igray = (Im(:,:,1)+Im(:,:,2)+Im(:,:,3))/3;

>> figure, imshow(Igray)

There is also the rgb2gray function that results

in a slightly different image

Roger S. Gaborski

Roger S. Gaborski

- bar(horz, v, width)
- v is row vector
- points to be plotted

- horz is a vector same dimension as v
- increments of horizontal scale
- omitted axis divided in units 0 to length(v)

- width number in [0 1]
- 1 bars touch
- 0 vertical lines
- 0.8 default

- v is row vector

Roger S. Gaborski

p= imhist(Igray)/numel(Igray);

>> h1 = p(1:10:256);

>> horz = (1:10:256);

>> figure, bar(horz,h1)

Review other examples

in text and in MATLAB

documentation

Roger S. Gaborski

Chapter 3

www.prenhall.com/gonzalezwoodseddins

Roger S. Gaborski

Roger S. Gaborski

Roger S. Gaborski

>> p= imhist(Igray)/numel(Igray);

>> figure, plot(p)

Roger S. Gaborski

256 bins

32 bins

imhist(Igray)/numel(Igray); imhist(Igray,32)/numel(Igray)

Roger S. Gaborski

>> p= imhist(Igray)/numel(Igray);

>> figure, plot(p)

probability

Gray level values

Roger S. Gaborski

OriginalDarkLight

Roger S. Gaborski

- How could we transform the pixel values of an image so that they occupy the whole range of values between 0 and 255?

Roger S. Gaborski

- How could we transform the pixel values of an image so that they occupy the whole range of values between 0 and 255?
- If they were uniformly distributed between 0 and x we could multiply all the gray level values by 255/x
- BUT – what if they are not uniformly distributed??

Roger S. Gaborski

Histogram CDF

Roger S. Gaborski

- HE generates an image with equally likely intensity values
- Transformation function: Cumulative Distribution Function (CDF)
- The intensity values in the output image cover the full range, [0 1]
- The resulting image has higher dynamic range
- The values in the normalized histogram are approximately the probability of occurrence of those values

Roger S. Gaborski

- Let pr(rj), j = 1, 2, … , L denote the histogram associated with intensity levels of a given image
- Values in normalized histogram are approximately equal to the probability of occurrence of each intensity level in image
- Equalization transformation is:

k = 1,2,…,L

sk is intensity value

of output

rk is input value

Sum of probability up to k value

Roger S. Gaborski

- g = histeq(f, nlev) where f is the original image and nlev number of intensity levels in output image

Roger S. Gaborski

Original Image

INPUT

Roger S. Gaborski

x255

Output Gray Level Value

Input Gray Level Value

Roger S. Gaborski

Equalization of Original Image

OUTPUT

Roger S. Gaborski

Roger S. Gaborski

Roger S. Gaborski

Roger S. Gaborski

Input ImageOutput Image

Roger S. Gaborski

- g = adapthisteq(f, parameters..)
- Contrast-limited adaptive histogram equalization
- Process small regions of the image (tiles) individually
- Can limit contrast in uniform areas to avoid noise amplification

Roger S. Gaborski

>> help adapthisteq

adapthisteq Contrast-limited Adaptive Histogram Equalization (CLAHE).

adapthisteq enhances the contrast of images by transforming the

values in the intensity image I. Unlike HISTEQ, it operates on small

data regions (tiles), rather than the entire image. Each tile's

contrast is enhanced, so that the histogram of the output region

approximately matches the specified histogram. The neighboring tiles

are then combined using bilinear interpolation in order to eliminate

artificially induced boundaries. The contrast, especially

in homogeneous areas, can be limited in order to avoid amplifying the

noise which might be present in the image.

J = adapthisteq(I) Performs CLAHE on the intensity image I.

J = adapthisteq(I,PARAM1,VAL1,PARAM2,VAL2...) sets various parameters.

Parameter names can be abbreviated, and case does not matter. Each

string parameter is followed by a value as indicated below:

'NumTiles' Two-element vector of positive integers: [M N].

[M N] specifies the number of tile rows and

columns. Both M and N must be at least 2.

The total number of image tiles is equal to M*N.

Default: [8 8].

Roger S. Gaborski

Default, 8x8 tiles

Roger S. Gaborski

Roger S. Gaborski

Chapter 3

www.prenhall.com/gonzalezwoodseddins

Roger S. Gaborski

Chapter 3

www.prenhall.com/gonzalezwoodseddins

Roger S. Gaborski

- Histogram is nothing more than mapping the pixels in a 2 dimensional matrix into a vector
- Each component in the vector is a bin (range of gray level values) and the corresponding value is the number of pixels with that gray level value

- Similarity between histogram bins:
- Assuming both histograms have ∑nj j=1…B pixels
M. Swain and D. Ballard. “Color indexing,”International Journal of Computer Vision, 7(1):11–32, 1991.

- A simple example:
- g = [ 17, 23, 45, 61, 15]; (histogram bins)
- h = [ 15, 21, 42, 51, 17];
- in=sum(min(h,g))/min( sum(h),sum(g))
- in =
0.9863

>> g = [17,23,45,61,15];

>> h = [15,21,42,51,17];

>> min(g,h)

ans=

15 21 42 51 15

>> N = sum(min(g,h))

N =

144

>> D=min(sum(h),sum(g))

D =

146

>> intersection = N/D

intersection =

0.9863

Roger S. Gaborski

- g = 15 21 42 51 17
- h = 15 21 42 51 17
- >> in=sum(min(h,g))/min( sum(h),sum(g))
- in =
1

- h = 15 21 42 51 17
- g = 57 83 15 11 1
- >> in=sum(min(h,g))/min( sum(h),sum(g))
- in =
0.4315

Similarity with itself:

>>h = hist(q(:),256);

>> g=h;

>> in=sum(min(h,g))/min( sum(h),sum(g))

in = 1

>> r=236;c=236;

>> g=im(1:r,1:c);

>> g= hist(g(:),256);

>> in=sum(min(h,g))/min( sum(h),sum(g))

in =

0.5474

>> g= hist(g(:),256);

>> in=sum(min(h,g))/min( sum(h),sum(g))

in =

0.8014

in=sum(min(h,g))/min( sum(h),sum(g))

in =

0.8566

- Different patches may have similar histograms

in=sum(min(h,g))/min( sum(h),sum(g))

in =

1