Digital Image Processing (CS/ECE 545) Lecture 8: Regions in Binary Images (Part 2) and Color (Part 1)
Digital Image Processing (CS/ECE 545) Lecture 8: Regions in Binary Images (Part 2) and Color (Part 1)
Image Processing (CS/ECE 545)
Lecture 8: Regions in Binary Images
(Part 2) and Color (Part 1)
Prof Emmanuel Agu
Computer Science Dept.
Worcester Polytechnic Institute (WPI)
Recall: Sequential Region Labeling
2 steps:
1. Preliminary labeling of image regions
2. Resolving cases where more than one label occurs (been previously
labeled)
Even though algorithm is complex (especially 2nd stage), it is
preferred because it has lower memory requirements
First step: preliminary labeling
Check following pixels depending on if we consider 4‐
connected or 8‐connected neighbors
Recall: Preliminary Labeling: Propagating
Labels
First foreground pixel [1] is found
All neighbors in N(u,v) are background pixels [0]
Assign pixel the first label [2]
Recall: Preliminary Labeling: Propagating
Labels
In next step, exactly on neighbor in N(u,v) marked with label 2,
so propagate this value [2]
Recall: Preliminary Labeling: Propagating
Labels
Continue checking pixels as above
At step below, there are two neighboring pixels and they have
differing labels (2 and 5)
One of these values is propagated (2 in this case), and collision
<2,5> is registered
Recall: Preliminary Labeling: Label
Collisions
At the end of labeling step
All foreground pixels have been provisionally marked
All collisions between labels (red circles) have been registered
Labels and collisions correspond to edges of undirected graph
Recall: Resolving Collisions
Once all distinct labels within single region have been
collected, assign labels of all pixels in region to be the same
(e.g. assign all labels to have the smallest original label. E.g. [2]
Region Labeling: Result
Region Contours
After finding regions, find region contours (outlines)
Sounds easy, but it is non‐trivial!
Morphological operations can be used to find boundary
pixels (interior and exterior)
We want ordered sequence of pixels that traces
boundaries
Inner vs Outer Contours
Outer contour:
lies along outside of foreground (dark) region
Only 1 exists
Inner contour:
Due to holes, there may be more than 1 inner contour
Inner vs Outer Contours
Complicated by regions connected by thin line 1 pixel wide
Contour may run through same pixel multiple times, from
different directions
Implication: we cannot use return to a starting pixel as
condition to terminate contour
Region with 1 pixel will also have contour
General Strategy for Finding Contours
Two steps:
Find all connected regions in image
For each region proceed around it starting from pixel selected from its
border
Works well, but implementation requires good record
keeping
Combining Region Labeling and
Contour Finding
Identifies and labels regions
Traces inner and outer contours
Step 1 (fig (a)):
Image is traversed from top left to
lower right.
If there’s a transition from
foreground pixel to previously
unmarked foreground pixel (A), A lies
on outer edge of a new region
A new label is allocated and starting
from point A, pixels on the edge along
outer contour are visited and labeled
until A is reached again (fig a)
Background pixels directly bordering
region are labeled ‐1
Combining Region Labeling and
Contour Finding
Step 2 (fig (b) & (c)):
If there’s transition from
foreground pixel B to unmarked
background pixel, B lies on inner
contour.
Starting from point B inner
contour is traversed. Pixels along
inner contour are found and
labeled with label from
surrounding region (fig ( c )) till
arriving back at B
Combining Region Labeling and
Contour Finding
Step 3 (fig (d)):
When foreground pixel does not
lie on contour (not an edge), this
means neighboring pixel to left
has already been labeled (fig
11.9(d)) and this label is
propagated to current pixel
Complete code in
appendix D of text
Algorithm for
Combining Region
Labeling and
Contour Finding
Algorithm for
Combining Region
Labeling and
Contour Finding
Result of Combining Region Labeling and
Contour Finding
Outer contours shown as black polygon lines running through
centers of contour pixels
Inner contours drawn in white
Contours of single pixel regions marked by small circles filled
with corresponding color
Result of Combining Region Labeling and
Contour Finding (Larger section)
Outer contours marked in black
Inner contours drawn in white
Representing Image Regions
Matrix is useful for storing images
Matrix representation requires same (large) memory allocation
even if image content is small (e.g. 2 lines)
Regions in image can be represented using logical mask
Area within region assigned value true
Area outside region assigned value false
Called bitmap since boolean values can be represented by 1 bit
Starting pixel
Example
Run Length Encoding (RLE)
RLE used as simple lossless compression method
Forms foundation for fax transmission
Used in several codecs including TIFF, GIF and JPEG
Chain Codes
Region representation using contour encoding
Contour beginning at start point xS represented by sequence
of directional changes it describes on a discrete raster image
Essentially, each possible direction is assigned a number
Length of resulting path approximates true length of contour
Differential Chain Codes
Contour R is defined as sequence of points
To encode region R,
Store starting point
Instead of storing sequence of point coordinates, store relative
direction (8 possibilities) each point lies away from the previous point.
i.e. create elements of its chain code sequence by
Where
2
3 0,1 1
-1,1 1,1
Code is defined by table below
4 -1,0 1,0 0
-1,-1 1,-1
5 0,-1
6 7
Differential Chain Code
Comparison of 2 different absolute chain codes is difficult
Differential Chain Code: Encode change in direction along
discrete contour
An absolute element chain code can be
converted element by element to differential chain code with
elements given by
Differential Chain Code Example
Differential Chain Code for the following figure is:
Example: 7 – 6 = 1
Shape Numbers
Digits of differential chain code frequently interpreted as
number to base b
b = 4 for 4‐connected contour
b = 8 for 8‐connected contour
We can shift the chain code sequence cyclically
Example: shifting chain code cyclically by 2 positions gives
Shape Number
We can shift the sequence cyclically until the numeric value is
maximized denoted as
The resulting code is called the shape number
To compare 2 differential codes, they must have same
starting point
Shape number does not have this requirement
In general chain codes are not useful for determining
similarity between regions because
Arbitrary rotations have too great of an impact on them
Cannot handle scaling or distortions
Fourier Descriptors
Interprete 2D contour as a sequence of values [z0, z1, ….zM‐1 ] in
complex plane, where
Coefficients of the 1D Fourier spectrum of this function provide
a shape description of the contour in frequency space
Properties of Binary Regions
Human descriptions of regions based on their properties:
“a red rectangle on a blue background”
“sunset at the beach with two dogs playing in the sand”
Not yet possible for computers to generate such descriptors
Alternatively, computers can calculate mathematical
properties of image or region to use for classification
Using features to classify images is fundamental part of
pattern recognition
Types of Features
Shape features
Geometric features
Statistical shape properties
Moment‐Based Geometrical Properties
Topological Properties
Shape Features
Feature: numerical or qualitative value computable from
values and coordinates of pixels in region
Example feature: One of simplest features is size which is the
total number of pixels in region
Feature vector:
Combination of different features
Used as a sort of “signature” for the region for classification or
comparison
Desirable properties of features
Simple to calculate
Not affected by translation, rotations and scaling
Geometric Features
Region R of binary image = 2D distribution of foreground
points within discrete plane
Perimeter: Length of region’s outer contour
Note that the region R must be connected
For 4‐neighborhood, measured length of contour is larger
than it’s actual length
Good approximation for 8‐connected chain code
Formula leads to overestimation. Good fix: multiply by 0.95
Geometric Features
Area: Simply count image pixels that make up region
Area of connected region (without holes): that is defined by
M coordinate points can be estimated using the Gaussian
area formula for polygons as
Geometric Features
Compactness and Roundness: is the relationship between a
region’s area and its perimeter. i.e. A / P2
Invariant to translation, rotation and scaling.
When applied to circular region ratio has value of 1/ 4π
Thus, normalizing against filled circle creates feature sensitive
to roundness or circularity
Geometric Features
Bounding Box: mininimal axis‐parallel rectangle that encloses all
points in R
Convex Hull: Smallest polygon that fits all points in R
Convexity: relationship between length of convex hull and perimeter of
the region
Density: the ratio between area of the region and area of the convex hull
Area of a binary region is zero‐order moment
Statistical Shape Properties
Similarly centroid can be expressed as
Moments are concrete physical properties of a region
Review: Moments of Statistical Data
Moments used to quantify how skewed data is
Example: Given the numbers, 3, 2, 3.7, 5, 2.7 and 3
the relative symmetry or skewness can be
determined by calculating moments
Third moment formula: For each point X, calculate:
We can calculate 2nd, 3rd, 4th, etc moments
Statistical Shape Properties
Central moments:
Use the region’s centroid as reference to calculate translation‐invariant
region features
Shifts the origin to the region’s centroid (Note: ordinary moment does not)
Order p, q central moments can be calculated as:
For binary image with I(u,v) = 1
Statistical Shape Properties
Values of central moments depends on:
Distances of all region points to centroid
Absolute size of the region
Size‐invariant features can be obtained by scaling central
moments uniformly by some factor s
Normalized central moments:
for (p + q) >= 2
Code to
Compute
Moments
Moment‐Based Geometrical Properties
Several interesting features can be derived from moments
Orientation: describes direction of major axis that runs
through centroid and along the widest part of the region
Moment‐Based Geometrical Properties
Sometimes called the major axis of rotation since rotating the
region around the major axis requires the least effort than
about any other axis
Direction of major axis can be calculated from central moments
Result is in the range [‐90, 90]
Moment‐Based Geometrical Properties
Might want to plot region’s orientation as a line or arrow
Using the parametric equation of a line
Start
Direction
point
vector
Region’s orientation vector xd can be computed as
where
Moment‐Based Geometric Properties
Eccentricity: Ratio of lengths of major axis and minor axis
Expresses how elongated the region is
The lengths of the major and minor axis are
Moment‐Based Geometrical Properties
Example images with orientation and eccentricity overlaid
Moment‐Based Geometrical Properties
Normalized central moments not affected by translation
or uniform scaling of a region but changed by rotation
Moments called Hu’s moments (seven combinations of
normalized central moments) are invariant to translation,
scaling and rotation
Projections
Horizontal projection of
row v0 is sum of pixel
intensity values in row v0
Vertical projection of
row u0 is sum of pixel
intensity values in row u0
For binary image,
projection is count of
foreground pixels in
corresponding row or
column
Projections
Image projections are 1d representations of image contents
Vertical and horizontal projections of image I(u,v) defined as
Code to Compute Vertical and Horizontal
Projections
Topological Properties
Capture the structure of a region
Invariant under strong image transformations
Number of holes is simple, robust feature
Euler number: Number of connected regions – number of
holes
Topological features often combined with numerical features
(e.g. in Optical Character Recognition (OCR))
Basics Of Color
Elements of color:
What is color?
Color is defined many ways
Physical definition
Wavelength of photons
Electromagnetic spectrum: infra‐red to ultra‐violet
But so much more than that…
Excitation of photosensitive molecules in eye
Electrical impulses through optical nerves
Interpretation by brain
Introduction
Color description: Red, greyish blue, white, dark
green…
Computer Scientist:
Hue: dominant wavelength, color we see
Saturation
how pure the mixture of wavelength is
How far is the color from gray (pink is less saturated than
red, sky blue is less saturated than royal blue)
Lightness/brightness: how intense/bright is the light
Recall: The Human Eye
The eye:
The retina
Rods
Cones
Color!
Recall: The Human Eye
The center of the retina is a densely packed region
called the fovea.
Eye has about 6‐ 7 million cones
Cones much denser here than the periphery
The Human Eye
Rods:
relatively insensitive to color, detail
Good at seeing in dim light, general object form
Human eye can distinguish
128 different hues of color
20 different saturations of a given hue
Visible spectrum: about 380nm to 720nm
Hue, luminance, saturation useful for describing
color
Given a color, tough to derive HSL though
Tristimulus theory
3 types of cones
Loosely identify as R, G, and B
cones
Each is sensitive to its own
spectrum of wavelengths
Combination of cone cell
stimulations give perception of
COLOR
The Human Eye: Cones
Three types of cones:
L or R, most sensitive to red light (610 nm)
M or G, most sensitive to green light (560 nm)
S or B, most sensitive to blue light (430 nm)
Color blindness results from missing cone type(s)
The Human Eye: Seeing Color
The tristimulus curve shows
overlaps, and different levels
of responses
Eyes more sensitive around
550nm, can distinquish
smaller differences
What color do we see best?
Yellow‐green at 550 nm
What color do we see worst?
Blue at 440 nm
Color Spaces
Three types of cones suggests color is a 3D quantity.
How to define 3D color space?
Color matching idea:
shine given wavelength () on a screen
Mix three other wavelengths (R,G,B) on same screen.
Have user adjust intensity of RGB until colors are identical:
Color Spaces
Alternate lingo may be better for other domains
Artists: tint, tone shade
Computer Graphics/Imaging: Hue, saturation,
luminance
Many different color spaces
RGB
CMY
HLS
HSV Color Model
And more…..
Combining Colors: Additive and
Subtractive
Remove components
Add components
from white
Natural scenes
HSV
RGB YUV
Converting Color Spaces
Converting between color models can also be
expressed as such a matrix transform:
Resulting image will be too dark in red and green areas
Alternative approach is use a weighted sum of RGB
Original weights for analog TV
Newer ITU weights for digital color encoding
Hueless (Gray) Color Images
An RGB image is hueless or gray when all components equal
To remove color from an image
Use weighted sum equation to calculate luminance value Y
Replace R,G and B components with Y value
In ImageJ, simplest way to convert RGB color image to grayscale
is to use method convertToByte( boolean doscaling)
convertToByte( boolean doscaling)uses default weights
Can change weights applied using setWeightingFactors
Desaturating Color Images
Desaturation: uniform reduction in amount of RGB
How? Calculated the desaturated color by linearly
interpolating RGB color and the corresponding (Y,Y,Y) gray
point in RGB space
scol takes values in [0,1] range
ImageJ
Desaturation
PlugIn
References
Wilhelm Burger and Mark J. Burge, Digital Image
Processing, Springer, 2008
University of Utah, CS 4640: Image Processing Basics,
Spring 2012
Rutgers University, CS 334, Introduction to Imaging and
Multimedia, Fall 2012
Gonzales and Woods, Digital Image Processing (3rd
edition), Prentice Hall
Computer Graphics using OpenGL by F.S Hill Jr, 2nd
edition, chapter 12