Binary Image Algorithm. What is an Object? What is an object? – Binary image Connected cluster of black pixels on a white background Connected cluster.

Slides:



Advertisements
Similar presentations
Goal: a graph representation of the topology of a gray scale image. The graph represents the hierarchy of the lower and upper level sets of the gray level.
Advertisements

Improved Shortest Path Algorithms for Nearly Acyclic Directed Graphs L. Tian and T. Takaoka University of Canterbury New Zealand 2007.
Planar Subdivision Induced by planar embedding of a graph. Connected if the underlying graph is. edge vertex hole in f face f disconnected subdivision.
Lecture 15. Graph Algorithms
§5 Minimum Spanning Tree 【 Definition 】 A spanning tree of a graph G is a tree which consists of V( G ) and a subset of E( G ) 〖 Example 〗 A complete.
CSE554Cell ComplexesSlide 1 CSE 554 Lecture 3: Shape Analysis (Part II) Fall 2014.
Weighted graphs Example Consider the following graph, where nodes represent cities, and edges show if there is a direct flight between each pair of cities.
Divide and Conquer. Subject Series-Parallel Digraphs Planarity testing.
Map Overlay Algorithm. Birch forest Wolves Map 1: Vegetation Map 2: Animals.
Great Theoretical Ideas in Computer Science for Some.
E.G.M. PetrakisImage Segmentation1 Segmentation is the process of partitioning an image into regions –region: group of connected pixels with similar properties.
IKI 10100: Data Structures & Algorithms Ruli Manurung (acknowledgments to Denny & Ade Azurat) 1 Fasilkom UI Ruli Manurung (Fasilkom UI)IKI10100: Lecture10.
Brute-Force Triangulation
Data Structures Chapter 12 Graphs Andreas Savva. 2 Definition A graph consists of a set of vertices together with a set of edges. If e = (v,w) is an edge.
 Graph Graph  Types of Graphs Types of Graphs  Data Structures to Store Graphs Data Structures to Store Graphs  Graph Definitions Graph Definitions.
A graph, non-tree representation of the topology of a gray scale image Peter Saveliev Marshall University, USA.
1 Modularity and Community Structure in Networks* Final project *Based on a paper by M.E.J Newman in PNAS 2006.
Contour Tracing Seo, Jong-hoon Media System Lab. Yonsei University.
The Instant Insanity Game
Surface Reconstruction from 3D Volume Data. Problem Definition Construct polyhedral surfaces from regularly-sampled 3D digital volumes.
Convex Grid Drawings of 3-Connected Plane Graphs Erik van de Pol.
Binary Trees Terminology A graph G = is a collection of nodes and edges. An edge (v 1,v 2 ) is a pair of vertices that are directly connected. A path,
Segmentation Divide the image into segments. Each segment:
Algorithm 1. (Convex Hull) - Pseudo code - Input. A set of points in the plane. Output. A list containing the vertices of Conv ( P). 1. Sort the points.
Point Location Computational Geometry, WS 2007/08 Lecture 5 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät für.
SubSea: An Efficient Heuristic Algorithm for Subgraph Isomorphism Vladimir Lipets Ben-Gurion University of the Negev Joint work with Prof. Ehud Gudes.
Lecture 6: Point Location Computational Geometry Prof. Dr. Th. Ottmann 1 Point Location 1.Trapezoidal decomposition. 2.A search structure. 3.Randomized,
Rectangular Drawing Imo Lieberwerth. Content Introduction Rectangular Drawing and Matching Thomassen’s Theorem Rectangular drawing algorithm Advanced.
Visualization and graphics research group CIPIC January 21, 2003Multiresolution (ECS 289L) - Winter Surface Simplification Using Quadric Error Metrics.
Minimum Spanning Trees. Subgraph A graph G is a subgraph of graph H if –The vertices of G are a subset of the vertices of H, and –The edges of G are a.
UNDERSTANDING DYNAMIC BEHAVIOR OF EMBRYONIC STEM CELL MITOSIS Shubham Debnath 1, Bir Bhanu 2 Embryonic stem cells are derived from the inner cell mass.
 Jim has six children.  Chris fights with Bob,Faye, and Eve all the time; Eve fights (besides with Chris) with Al and Di all the time; and Al and Bob.
UNC Chapel Hill M. C. Lin Point Location Reading: Chapter 6 of the Textbook Driving Applications –Knowing Where You Are in GIS Related Applications –Triangulation.
Surface Simplification Using Quadric Error Metrics Michael Garland Paul S. Heckbert.
S EGMENTATION FOR H ANDWRITTEN D OCUMENTS Omar Alaql Fab. 20, 2014.
CS 6825: Binary Image Processing – binary blob metrics
© 2015 JW Ryder CSCI 203 Data Structures1. © 2015 JW Ryder CSCI 203 Data Structures2.
September 23, 2014Computer Vision Lecture 5: Binary Image Processing 1 Binary Images Binary images are grayscale images with only two possible levels of.
Digital Image Processing CCS331 Relationships of Pixel 1.
Planar Subdivision Induced by planar embedding of a graph. Connected if the underlying graph is. edge vertex disconnected subdivision Complexity = #vertices.
Connected Components Fun with graphs, searching, and queues.
Introduction Image geometry studies rotation, translation, scaling, distortion, etc. Image topology studies, e.g., (i) the number of occurrences.
1 Euler Number Computation By Kishore Kulkarni (Under the Guidance of Dr. Longin Jan Latecki)
CS654: Digital Image Analysis Lecture 5: Pixels Relationships.
Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1.
Graphs Definition: a graph is an abstract representation of a set of objects where some pairs of the objects are connected by links. The interconnected.
CSC 252: Algorithms October 28, 2000 Homework #5: Graphs Victoria Manfredi (252a-ad) notes: -Definitions for each of the graph concepts are those presented.
Course 3 Binary Image Binary Images have only two gray levels: “1” and “0”, i.e., black / white. —— save memory —— fast processing —— many features of.
Morphological Image Processing
Leda Demos By: Kelley Louie Credits: definitions from Algorithms Lectures and Discrete Mathematics with Algorithms by Albertson and Hutchinson graphics.
IT472: Digital Image Processing
Introduction to Algorithms
Introduction to Polygons
Computer Vision Lecture 13: Image Segmentation III
Fill Area Algorithms Jan
Great Theoretical Ideas in Computer Science
Mean Shift Segmentation
Computer Vision Lecture 12: Image Segmentation II
Chapter 5.
CS120 Graphs.
Computer Vision Lecture 5: Binary Image Processing
Binary Image Analysis: Part 1 Readings: Chapter 3: 3.1, 3.4, 3.8
Discrete Mathematics for Computer Science
Binary Image Analysis: Part 1 Readings: Chapter 3: 3.1, 3.4, 3.8
CSE 373 Data Structures and Algorithms
Binary Image processing بهمن 92
Graphs Part 2 Adjacency Matrix
Chapter 14 Graphs © 2011 Pearson Addison-Wesley. All rights reserved.
Graph Vocabulary.
Application of Facial Recognition in Biometric Security
Presentation transcript:

Binary Image Algorithm

What is an Object? What is an object? – Binary image Connected cluster of black pixels on a white background Connected cluster of white pixels on a black background Objects can also have holes in them 2

Goals of Image Analysis Identify objects – Objects can have holes in them Find their locations Find their size If certain objects are small, it can be ignored. The decision to ignore any size object is taken by the user

Loss less Processing Nothing is removed or ignored No iteration, approximation No floating point arithmetic 4

Cell Decomposition Object is represented by – List of pair of numbers Pixel is square – Instead of a point 5

Definitions – A vertex is a 0-cell – An edge is a 1-cell Boundaries consists of 2 end-points as 0-cells – A pixel is a 2-cell Boundaries consists of 4 edges as 1-cell – A voxel is a 3-cell Boundaries consists of 6 faces as 2-cells 6

Cell Decomposition of an Image Two adjacent edges as 1-cells share a vertex, a 0-cell Two adjacent pixels as 2-cells share an edge, 1-cell Edge: 1-cell Vertex: 0-cell Edge: 1-cell The image is made of k-cells that are attached to each other along (k-1) cells.

Binary Images ASSUMPTION: Binary images are analyzed as if they have black objects on white background Background Objects

Cycles 0-cycles represent objects or connected components of the image – Traversed clockwise 1-cycles represents holes – Traversed counterclockwise Image Its topological features are represented as cycles. Here A and B are 0-cycles, C and C are 1-cycles.

Partition A partition is a collection of non-overlapping regions – Connected set of black pixels – Connected set of white pixels The partition is achieved by finding boundaries of these regions as 0-cycles and 1- cycles.

Algorithm to Detect Cycles Incremental One pixel at a time are added to the image The process of adding a pixel starts with adding its vertices and then its edges

The Procedure to Add a Pixel Stage 1-4 Stage 5 Stage 7Stage 8 Stage 6 Stage 9 Add 4 vertexAdd 4 EdgesAdd Pixel

Example 1 This object has one 0-cycle A one 1-cycle B Incremental addition of pixels will able to recognize the 2 cycles

Example 1: Add Pixel 1 and 2 Add Pixel 1 Add 4 vertex Add 4 edges Add 1 cycle 9 Steps 1 Add Pixel 2 Add 2 vertex Add 3 edges Add 1 cycle 6 Steps 12

Example 1: Add Pixel 3 and 4 Add Pixel 3 Add 2 vertex Add 3 edges Add 1 cycle 6 Steps 123 Add Pixel 4 Add 2 vertex Add 3 edges Add 1 cycle 6 Steps 123 4

Example 1: Add Pixel 5 and 6 Add Pixel 5 Add 2 vertex Add 3 edges Add 1 cycle 6 Steps Add Pixel 6 Add 2 vertex Add 3 edges Add 1 cycle 6 Steps

Example 1: Add Pixel 7 and 8 Add Pixel 7 Add 1 vertex Add 3 edges Add 1 cycle 5 Steps Add Pixel 8 Add 1 vertex Add 2 edges Add 1 cycle 4 Steps B B 8 Cycle A is complete Cycle B is complete

Example 2

Example 2: Answer

Pseudo Code Image Analysis with binary image I FOR all pixels in I IF pixel P in I is black THEN CALL AddCell with pixel P END IF END FOR

Pseudo Code AddCell with pixel P CALL AddVertex with the upper right of pixel P CALL AddVertex with the upper left of pixel P CALL AddVertex with the lower right of pixel P CALL AddVertex with the lower left of pixel P CALL AddEdge with the lower edge of pixel P CALL AddEdge with the right edge of pixel P CALL AddEdge with the upper edge of pixel P CALL AddEdge with the left edge of pixel P CALL RemoveCycle with the 1-cycle that starts at any of these 8 edges that goes counterclockwise

Pseudo Code AddVertex with vertex V IF the edge = vertex V is active THEN RETURN ENDIF Call AddCycle with edge = vertex V

Pseudo Code AddEdge with edge E IF edge E is active THEN RETURN END IF CALL StepForward with edge E RETURNING temporary edge E1 Find the cycle determined by temporary edge E1, A CALL StepForward with the opposite of the edge RETURNING temporary edge E2 Find the cycle determined by temporary edge E2, B IF A == B THEN CALL SplitCycle with edges E1, E2, and cycle A ELSE CALL MergeCycles with edge E1 and cycles A, B END IF

Pseudo Code MergeCycles with cycles A, B and edge E CALL CreateCycle with edge E RETURNING a new 0-cycle C Add links from A and B to C in the graph 0-Betti --

Pseudo Code SplitCycle with edge E and cycle A IF A is a 1-cycle THEN CALL CreateCycle with edge E1 RETURNING a new 0-cycle C CALL CreateCycle with edge E2 RETURNING a new 0-cycle D END IF IF A is a 0-cycle THEN CALL CreateCycle with edge E1 RETURNING a new 0-cycle C CALL CreateCycle with edge E2 RETURNING a new 1-cycle D END IF 1-Betti number ++ Add links from A to C and D in the graph

The output of the algorithm Traversing a cycle.