0% found this document useful (0 votes)
138 views77 pages

The Course: Image Representation Image Statistics Histograms Entropy Filters Books

The document discusses digital image processing and computer vision concepts. It covers topics like image representation, image statistics, histograms, filters, human vision versus computer vision, low-level and high-level image processing, image acquisition and manipulation, image definition, monochromatic and chromatic images, image quality, digital image storage formats like PPM, image statistics such as mean, variance and standard deviation, histograms and probability density functions, and histogram equalization for contrast enhancement.

Uploaded by

Alwin Rs
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
138 views77 pages

The Course: Image Representation Image Statistics Histograms Entropy Filters Books

The document discusses digital image processing and computer vision concepts. It covers topics like image representation, image statistics, histograms, filters, human vision versus computer vision, low-level and high-level image processing, image acquisition and manipulation, image definition, monochromatic and chromatic images, image quality, digital image storage formats like PPM, image statistics such as mean, variance and standard deviation, histograms and probability density functions, and histogram equalization for contrast enhancement.

Uploaded by

Alwin Rs
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 77

The Course

 Image representation  Books


 Image statistics Computer Vision –
Adrian Lowe
 Histograms (frequency)
Digital Image Processing –
 Entropy (information) Gonzalez, Woods
 Filters (low, high, edge, smooth) Image Processing, Analysis
and Machine Vision – Milan
Sonka, Roger Boyle
Digital Image Processing

 Human vision - perceive and understand world


 Computer vision, Image Understanding / Interpretation,
Image processing.
3D world -> sensors (TV cameras) -> 2D images
Dimension reduction -> loss of information
 low level image processing
transform of one image to another
 high level image understanding
knowledge based - imitate human cognition
make decisions according to information in image
Introduction to Digital Image
Processing

Classification / decision

 Acquisition,
preprocessing
HIGH
Algorithm Amount of  no intelligence
Complexity Data
 Extraction, edge
Increases MEDIUM Decreases
joining
LOW  Recognition,
interpretation
 intelligent

Raw data
Low level digital image
processing
 Low level computer vision ~ digital image processing
 Image Acquisition
 image captured by a sensor (TV camera) and digitized
 Preprocessing
 suppresses noise (image pre-processing)
 enhances some object features - relevant to understanding the image
 edge extraction, smoothing, thresholding etc.
 Image segmentation
 separate objects from the image background
 colour segmentation, region growing, edge linking etc
 Object description and classification
 after segmentation
Signals and Functions
 What is an image
 Signal = function (variable with physical meaning)
one-dimensional (e.g. dependent on time)
two-dimensional (e.g. images dependent on two co-ordinates in a
plane)
three-dimensional (e.g. describing an object in space)
higher-dimensional
 Scalar functions
sufficient to describe a monochromatic image - intensity images
 Vector functions
represent color images - three component colors
Image Functions
 Image - continuous function of a number of variables
 Co-ordinates x, y in a spatial plane
 for image sequences - variable (time) t
 Image function value = brightness at image points
 other physical quantities
 temperature, pressure distribution, distance from the observer
 Image on the human eye retina / TV camera sensor - intrinsically 2D
 2D image using brightness points = intensity image
 Mapping 3D real world -> 2D image
 2D intensity image = perspective projection of the 3D scene
 information lost - transformation is not one-to-one
 geometric problem - information recovery
 understanding brightness info
Image Acquisition &
Manipulation
 Analogue camera
 frame grabber
 video capture card
 Digital camera / video recorder
 Capture rate  30 frames / second
 HVS persistence of vision
 Computer, digitised image, software (usually c)
 f(x,y)  #define M 128
#define N 128
unsigned char f[N][M]
 2D array of size N*M
 Each element contains an intensity value
Image definition

 Image definition:
A 2D function obtained by sensing a scene N
F(x,y), F(x1,x2), F(x)
F - intensity, grey level f(o,o)
x,y - spatial co-ordinates
M
 No. of grey levels, L = 2B
 B = no. of bits f(N-1,M-1)

B L Description
1 2 Binary Image (black and white)
6 54 64 levels, limit of human visual system
8 256 Typical grey level resolution
Brightness and 2D images
 Brightness dependent several factors
 object surface reflectance properties
surface material, microstructure and marking
 illumination properties
 object surface orientation with respect to a viewer and light source
 Some Scientific / technical disciplines work with 2D images directly
 image of flat specimen viewed by a microscope with transparent
illumination
 character drawn on a sheet of paper
 image of a fingerprint
Monochromatic images
 Image processing - static images - time t is constant
 Monochromatic static image - continuous image
function f(x,y)
arguments - two co-ordinates (x,y)
 Digital image functions - represented by matrices
co-ordinates = integer numbers
Cartesian (horizontal x axis, vertical y axis)
OR (row, column) matrices
 Monochromatic image function range
lowest value - black
highest value - white
 Limited brightness values = gray levels
Chromatic images

Colour
Represented by vector not scalar
Red, Green, Blue (RGB)
Hue, Saturation, Value (HSV)
luminance, chrominance (Yuv , Luv)
S=0
Green Hue degrees:
Red Red, 0 deg
Green 120 deg
Green Blue 240 deg
V=0
Use of colour space
Image quality

Quality of digital image proportional to:


spatial resolution
proximity of image samples in image plane
spectral resolution
bandwidth of light frequencies captured by sensor
radiometric resolution
number of distinguishable gray levels
time resolution
interval between time samples at which images captured
Image summary
N
 F(xi,yj)
 i = 0 --> N-1 f(o,o)
 j = 0 --> M-1
 N*M = spatial resolution, size of image M
 L = intensity levels, grey levels
f(N-1,M-1)
 B = no. of bits
Digital Image Storage

Stored in two parts


header
width, height … cookie.
• Cookie is an indicator of what type of image file
data
uncompressed, compressed, ascii, binary.
File types
JPEG, BMP, PPM.
PPM, Portable Pixel Map

Cookie
Px
Where x is:
1 - (ascii) binary image (black & white, 0 & 1)
2 - (ascii) grey-scale image (monochromic)
3 - (ascii) colour (RGB)
4 - (binary) binary image
5 - (binary) grey-scale image (monochromatic)
6 - (binary) colour (RGB)
PPM example

 PPM colour file RGB

P3
# feep.ppm
44
15
0 0 0 0 0 0 0 0 0 15 0 15
0 0 0 0 15 7 0 0 0 0 0 0
0 0 0 0 0 0 0 15 7 0 0 0
15 0 15 0 0 0 0 0 0 0 0 0
Image statistics
M 1 N 1

 f ( x, y)
y 0 x 0
 MEAN  =
N *M
M 1 N 1

 ( f ( x , y )   ) 2

 VARIANCE 2 = y 0 x 0

N *M

 STANDARDEVIATION  = var iance


Histograms, h(l)
 Counts the number of occurrences of each grey level in
an image
 l = 0,1,2,… L-1
 l = grey level, intensity level
 L = maximum grey level, typically 256

MAX
Area under histogram


 h (l ) 
l 0
Total number of pixels N*M
unimodal, bimodal, multi-modal, dark, light, low contrast, high
contrast
Probability Density
Functions, p(l)

 Limits 0 < p(l) < 1


 p(l) = h(l) / n
 n = N*M (total number of pixels)
MAX

 p(l ) 1
l 0
Histogram Equalisation, E(l)

Increases dynamic range of an image


Enhances contrast of image to cover all possible
grey levels
Ideal histogram = flat
 same no. of pixels at each grey level
N *M
 Ideal no. of pixels at each grey level = i 
L
Histogram equalisation

Typical histogram Ideal histogram


E(l) Algorithm
 Allocate pixel with lowest grey level in old image to 0 in new image
 If new grey level 0 has less than ideal no. of pixels, allocate pixels
at next lowest grey level in old image also to grey level 0 in new
image
 When grey level 0 in new image has > ideal no. of pixels move up
to next grey level and use same algorithm
 Start with any unallocated pixels that have the lowest grey level in
the old image
 If earlier allocation of pixels already gives grey level 0 in new image
TWICE its fair share of pixels, it means it has also used up its
quota for grey level 1 in new image
 Therefore, ignore new grey level one and start at grey level 2 …..
Simplified Formula

L
E (l )  max( o, round (( ) * t (l ))  1)
N *M
 E(l)  equalised function
 max  maximum dynamic range
 round  round to the nearest integer (up or down)
L  no. of grey levels
 N*M  size of image
 t(l)  accumulated frequencies
Histogram equalisation
examples

Typical histogram After histogram equalisation


Histogram Equalisation e.g.
L
E (l )  max( o, round (( ) * t (l ))  1)
N *M
10 Before HE After HE
9
8
7
6
5
4 Ideal=3
3
2
1
0
1 2 3 4 5 6 7 8 9 10
2
1
0
g h(g) t(g) e(g) New hist
1 1 1 1 0
2 9 10 3 0
3 8 18 6 9
4 6 24 8 0
5 1 25 8 0
6 1 26 9 8
7 1 27 9 0
8 1 28 9 7
9 2 30 10 3
10 0 30 10 2
Noise in images
 Images often degraded by random noise
 image capture, transmission, processing
 dependent or independent of image content
 White noise - constant power spectrum
 intensity does not decrease with increasing frequency
 very crude approximation of image noise
 Gaussian noise
 good approximation of practical noise
 Gaussian curve = probability density of random variable
 1D Gaussian noise - µ is the mean
  is the standard deviation
Gaussian noise e.g.

50% Gaussian noise


Types of noise

 Image transmission
noise usually independent image signal
 additive, noise v and image signal g are independent

 multiplicative, noise is a function of signal magnitude

 impulse noise (saturated = salt and pepper noise)


Data Information
 Different quantities of data used to represent same
information
people who babble, succinct
 Redundancy
if a representation contains data that is not necessary

Same information Amounts of data


Representation 1 N1
Representation 2 N2
N1
 Compression ratio CR =
 N2
1
1
 Relative data redundancy RD = CR
Types of redundancy
Coding
if grey levels of image are coded in such away that
uses more symbols than is necessary
Inter-pixel
can guess the value of any pixel from its neighbours
Psyco-visual
some information is less important than other info in
normal visual processing
Data compression
when one / all forms of redundancy are reduced / removed
data is the means by which information is conveyed
Coding redundancy
 Can use histograms to construct codes
 Variable length coding reduces bits and gets rid of redundancy
 Less bits to represent level with high probability
 More bits to represent level with low probability
 Takes advantage of probability of events
 Images made of regular shaped objects / predictable shape
 Objects larger than pixel elements
 Therefore certain grey levels are more probable than others
 i.e. histograms are NON-UNIFORM
 Natural binary coding assigns same bits to all grey levels
 Coding redundancy not minimised
Run length coding (RLC)

 Represents strings of symbols in an image matrix


 FAX machines
 records only areas that belong to the object in the image
 area represented as a list of lists
 Image row described by a sublist
 first element = row number
 subsequent terms are co-ordinate pairs
 first element of a pair is the beginning of a run
 second is the end
 can have several sequences in each row
 Also used in multiple brightness images
 in sublist, sequence brightness also recorded
Example of RLC
Inter-pixel redundancy, IPR

 Correlation between pixels is not used in coding


 Correlation due to geometry and structure
 Value of any pixel can be predicted from the value of the neighbours
 Information carried by one pixel is small
 Take 2D visual information
 transformed  NONVISUAL format
 This is called a MAPPING
 A REVERSIBLE MAPPING allows original to be reconstructed after
MAPPING
 Use run-length coding
Psyco-visual redundancy, PVR

 Due to properties of human eye


 Eye does not respond with equal sensitivity to all visual
information (e.g. RGB)
 Certain information has less relative importance
 If eliminated, quality of image is relatively unaffected
 This is because HVS only sensitive to 64 levels

 Use fidelity criteria to assess loss of information


Fidelity Criteria
Info Encoder Channel Decoder Info User
Source Sink

NOISE
 In a noiseless channel, the
encoder is used to remove any
redundancy
PVR removed, image quality is
 2 types of encoding
reduced
 LOSSLESS
2 classes of criteria
 LOSSY
OBJECTIVE fidelity criteria
SUBJECTIVE fidelity criteria
 Design concerns
OBJECTIVE: if loss is expressed
 Compression ratio, CR achieved
as a function of IP / OP
 Quality achieved
 Trade off between CR and quality
Fidelity Criteria

 Input  f(x,y) M 1 N 1

 e( x, y) 2

 compressed output  f(x,y) erms 


y 0 x 0

 error  e(x,y) = f(x,y) -f(x,y) N *M


M 1 N 1

 f ( x, y)
y 0 x 0
2

SNRms  M 1 N 1

 erms = root mean squared error  e( x, y)


y 0 x 0
2

 SNR = signal to noise ratio


 PSNR = peak signal to noise ratio N * M * ( L  1) 2
PSNR  M 1 N 1

 e( x, y)
y 0 x 0
2
Information Theory
How few data are needed to represent an
image without loss of info?
Measuring information
random event, E
probability, p(E)
units of information, I(E)
1
I ( E )  log   log p( E )
p( E )
I(E) = self information of E
amount of info is inversely proportional to the probability
base of log is the unit of info
log2 = binary or bits
e.g. p(E) = ½ => 1 bit of information (black and white)
Infromation channel

Info Encoder Channel Decoder Info User


Source Sink

NOISE

 Connects source and user


physical medium
 Source generates random symbols from a closed set
 Each source symbol has a probability of occurrence
 Source output is a discrete random variable
 Set of source symbols is the source alphabet
Entropy
 Entropy is the uncertainty of the source
 Probability of source emitting a symbol, S = p(S)
 Self information I(S) = -log p(S) L 1
 For many Si , i = 0, 1, 2, … L-1 
H   Pi log 2 ( Pi )
i 0

 Defines the average amount of info obtained by


observing a single source output
 OR average information per source output (bits)
alphabet = 26 letters  4.7 bits/letter
typical grey scale = 256 levels  8 bits/pixel
Filters
 Need templates and convolution  Convolution of Images
 essential for image processing
 Elementary image filters are used
 template is an array of values
enhance certain features
 placed step by step over image
de-enhance others  each element placement of
edge detect template is associated with a
smooth out noise pixel in the image
discover shapes in images  can be centre OR top left of
template
Template Convolution

 Each element is multiplied with its corresponding


grey level pixel in the image
 The sum of the results across the whole template is
regarded as a pixel grey level in the new image
 CONVOLUTION --> shift add and multiply
 Computationally expensive
big templates, big images, big time!
 M*M image, N*N template = M2N2
Convolution
 Let T(x,y) = (n*m) template
 Let I(X,,Y) = (N*M) image
 Convolving T and I gives:
n 1 m 1
T  I ( X , Y )   T (i, j )  I ( X  i, Y  j )
i 0 j 0

 CROSS-CORRELATION not CONVOLUTION


 Real convolution is:
n 1 m 1
T  I ( X , Y )   T (i, j )  I ( X  i, Y  j )
i 0 j 0

 convolution often used to mean cross-correlation


Templates
Template Image Result
1 0 1 1 3 3 4 2 5 7 6 *
0 1 1 1 4 4 3 2 4 7 7 *
2 1 3 3 3 3 2 7 7 *
1 1 1 4 4 * * * * *

 Template is not allowed to shift  Periodic Convolution


off end of image  wrap image around a ball
 Result is therefore smaller than  template shifts off left, use
image right pixels
 2 possibilities
 pixel placed in top left position of
 Aperiodic Convolution
new image  pad result with zeros
 pixel placed in centre of template
(if there is one)
 Result
 top left is easier to program  same size as original
 easier to program
Filters
 Need templates and convolution  Convolution of Images
 essential for image processing
 Elementary image filters are used
 template is an array of values
enhance certain features
 placed step by step over image
de-enhance others  each element placement of
edge detect template is associated with a
smooth out noise pixel in the image
discover shapes in images  can be centre OR top left of
template
Template Convolution

 Each element is multiplied with its corresponding


grey level pixel in the image
 The sum of the results across the whole template is
regarded as a pixel grey level in the new image
 CONVOLUTION --> shift add and multiply
 Computationally expensive
big templates, big images, big time!
 M*M image, N*N template = M2N2
Templates
Template Image Result
1 0 1 1 3 3 4 2 5 7 6 *
0 1 1 1 4 4 3 2 4 7 7 *
2 1 3 3 3 3 2 7 7 *
1 1 1 4 4 * * * * *

 Template is not allowed to shift  Periodic Convolution


off end of image  wrap image around a ball
 Result is therefore smaller than  template shifts off left, use
image right pixels
 2 possibilities
 pixel placed in top left position of
 Aperiodic Convolution
new image  pad result with zeros
 pixel placed in centre of template
(if there is one)
 Result
 top left is easier to program  same size as original
 easier to program
Low pass filters

 Moving average of time series Removes high frequency


components
smoothes
Better filter, weights
 Average (up/down, left/right) centre pixel more
smoothes out sudden changes in
pixel values 1 1 1 1 3 1
removes noise 1 1 1 3 16 3
introduces blurring 1 1 1 1 3 1
 Classical 3x3 template
Example of Low Pass

Original Gaussian, sigma=3.0


High pass filters
 Removes gradual changes  Roberts Operators
between pixels  oldest operator
 enhances sudden changes  easy to compute only 2x2
 i.e. edges neighbourhood
 high sensitivity to noise
 few pixels used to calculate
gradient

0 1 1 0
-1 0 0 -1
High pass filters
 Laplacian Operator
 known as 
2
0 1 0 1 1 1
 template sums to zero 1 -4 1 1 -8 1
 image is constant (no sudden 0 1 0 1 1 1
changes), output is zero
 popular for computing second
derivative
2 -1 2 -1 2 -1
 gives gradient magnitude only
-1 -4 -1 2 -4 2
 usually a 3x3 matrix
2 -1 2 -1 2 -1
 stress centre pixel more
 can respond doubly to some
edges
Cont.
 Prewitt Operator
 similar to Sobel, Kirsch, Robinson 1 1 1
 approximates the first derivative
0 0 0
 gradient is estimated in eight
possible directions -1 -1 -1
 result with greatest magnitude is the
gradient direction 0 1 1
 operators that calculate 1st derivative -1 0 1
of image are known as COMPASS -1 -1 0
OPERATORS
 they determine gradient direction
 1st 3 masks are shown below
-1 0 1
(calculate others by rotation …) -1 0 1
 direction of gradient given by mask -1 0 1
with max response
Cont.

Sobel Robinson
good horizontal / vertical 1 1 1
edge detector 1 -2 1
1 2 1 -1 -1 -1
0 0 0
-1 -2 -1
Kirsch
-1 0 1
-2 0 2 3 3 3
3 0 3
-1 0 1
-5 -5 -5
0 1 2
-1 0 1
-2 -1 0
Example of High Pass

Laplacian Filter - 2nd derivative


More e.g.’s

Horizontal Sobel Vertical Sobel


1st derivative
Morphology

 The science of form and structure


 the science of form, that of the outer form, inner structure,
and development of living organisms and their parts
about changing/counting regions/shapes
 Used to pre- or post-process images
via filtering, thinning and pruning

 Smooth region edges  Count regions (granules)


create line drawing of face number of black regions
 Force shapes onto region  Estimate size of regions
edges area calculations
curve into a square
Morphological Principles
 Easily visulaised on binary image
 Template created with known origin
1 *
1 1
 Template stepped over entire image
similar to correlation
 Dilation
if origin == 1 -> template unioned
resultant image is large than original
 Erosion
only if whole template matches image
origin = 1, result is smaller than original
Dilation

Dilation (Minkowski addition)


fills in valleys between spiky regions
increases geometrical area of object
objects are light (white in binary)
sets background pixels adjacent to object's
contour to object's value
smoothes small negative grey level regions
Dilation e.g.
Erosion

Erosion (Minkowski subtraction)


removes spiky edges
objects are light (white in binary)
decreases geometrical area of object
sets contour pixels of object to background value
smoothes small positive grey level regions
Erosion e.g.
Hough Transform

Intro
edge linking & edge relaxation join curves
require continuous path of edge pixels
HT doesn’t require connected / nearby points
Parametric representation
Finding straight lines
consider, single point (x,y)
infinite number of lines pass through (x,y)
each line = solution to equation
simplest equation:
y = kx + q
HT - parametric
representation

y = kx + q
(x,y) - co-ordinates
k - gradient
q - y intercept
Any stright line is characterised by k & q
use : ‘slope-intercept’ or (k,q) space not (x,y)
space
(k,q) - parameter space
(x,y) - image space
can use (k,q) co-ordinates to represent a line
Parameter space

q = y - kx
a set of values on a line in the (k,q) space ==
point passing through (x,y) in image space
OR
every point in image space (x,y) ==
line in parameter space
HT properties

 Original HT designed to detect straight lines and


curves
 Advantage - robustness of segmentation results
 segmentation not too sensitive to imperfect data or noise
 better than edge linking
 works through occlussion
 Any part of a straight line can be mapped into
parameter space
Accumulators

Each edge pixel (x,y) votes in (k,q) space for


each possible line through it
i.e. all combinations of k & q
This is called the accumulator
If position (k,q) in accumulator has n votes
n feature points lie on that line in image space
Large n in parameter space, more probable
that line exists in image space
Therefore, find max n in accumulator to find
lines
HT Algorithm

 Find all desired feature points in


image space
i.e. edge detect (low pass filter)
 Take each feature point
increment appropriate values in
parameter space
i.e. all values of (k,q) for give (x,y)
 Find maxima in accumulator array
 Map parameter space back into
image space to view results
Alternative line representation
 ‘slope-intercept’ space has problem
verticle lines k -> infinity
q -> infinity
 Therefore, use (,) space
 = xcos  + y sin 
 = magnitude
drop a perpendicular from origin to the line
 = angle perpendicular makes with x-axis
, space
In (k,q) space
point in image space == line in (k,q) space
In (,) space
point in image space == sinusoid in (,) space
where sinusoids overlap, accumulator = max
maxima still = lines in image space
 Practically, finding maxima in accumulator is non-
trivial
often smooth the accumulator for better results
HT for Circles

Extend HT to other shapes that can be


expressed parametrically
Circle, fixed radius r, centre (a,b)
(x1-a)2 + (x2-b)2 = r2
accumulator array must be 3D
unless circle radius, r is known
re-arrange equation so x1 is subject and x2 is the
variable
for every point on circle edge (x,y) plot range of
(x1,x2) for a given r
Hough circle example
General Hough Properties

Hough is a powerful tool for curve detection


Exponential growth of accumulator with
parameters
Curve parameters limit its use to few
parameters
Prior info of curves can reduce computation
e.g. use a fixed radius
Without using edge direction, all accumulator
cells A(a) have to be incremented
Optimisation HT
With edge direction
edge directions quantised into 8 possible directions
only 1/8 of circle need take part in accumulator
Using edge directions
a & b can be evaluated from

 = edge direction in pixel x


delta  = max anticipated edge direction error
 Also weight contributions to accumulator A(a) by edge
magnitude
General Hough

Find all desired points in image


For each feature point
for each pixel i on target boundary
get relative position of reference point from i
add this offset to position of i
increment that position in accumulator
Find local maxima in accumulator
Map maxima back to image to view
General Hough example

 explicitly list points on shape


 make table for all edge pixles for target
 for each pixel store its position relative to some
reference point on the shape
 ‘if I’m pixel i on the boundary, the reference point is at
ref[i]’

You might also like