CSE 554 Lecture 1: Binary Pictures

Slides:



Advertisements
Similar presentations
NA-MIC National Alliance for Medical Image Computing Slicer Tutorial Module: Segmentation May 26, 2005.
Advertisements

CSE554Cell ComplexesSlide 1 CSE 554 Lecture 3: Skeleton and Thinning (Part II) Fall 2013.
CSE554Cell ComplexesSlide 1 CSE 554 Lecture 3: Shape Analysis (Part II) Fall 2014.
Table of Contents 9.5 Some Basic Morphological Algorithm
Course Syllabus 1.Color 2.Camera models, camera calibration 3.Advanced image pre-processing Line detection Corner detection Maximally stable extremal regions.
CDS 301 Fall, 2009 Image Visualization Chap. 9 November 5, 2009 Jie Zhang Copyright ©
Chapter 9: Morphological Image Processing
Course Syllabus 1.Color 2.Camera models, camera calibration 3.Advanced image pre-processing Line detection Corner detection Maximally stable extremal regions.
Morphology – Chapter 10. Binary image processing Often it is advantageous to reduce an image from gray level (multiple bits/pixel) to binary (1 bit/pixel)
Each pixel is 0 or 1, background or foreground Image processing to
Introduction to Morphological Operators
Morphological Image Processing Md. Rokanujjaman Assistant Professor Dept of Computer Science and Engineering Rajshahi University.
Provides mathematical tools for shape analysis in both binary and grayscale images Chapter 13 – Mathematical Morphology Usages: (i)Image pre-processing.
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2013.
Morphology Structural processing of images Image Processing and Computer Vision: 33 Morphological Transformations Set theoretic methods of extracting.
Chapter 9 Morphological Image Processing. Preview Morphology: denotes a branch of biology that deals with the form and structure of animals and planets.
Introduction to Computer Vision
Computer Vision Basics Image Terminology Binary Operations Filtering Edge Operators.
2007Theo Schouten1 Morphology Set theory is the mathematical basis for morphology. Sets in Euclidic space E 2 (or rather Z 2 : the set of pairs of integers)
CSE554Binary PicturesSlide 1 CSE 554 Lecture 1: Binary Pictures Fall 2013.
CSE554Binary PicturesSlide 1 CSE 554 Lecture 1: Binary Pictures Fall 2014.
Chapter 3 Binary Image Analysis. Types of images ► Digital image = I[r][c] is discrete for I, r, and c.  B[r][c] = binary image - range of I is in {0,1}
CGMB 314 Intro to Computer Graphics Fill Area Primitives.
Lecture 5. Morphological Image Processing. 10/6/20152 Introduction ► ► Morphology: a branch of biology that deals with the form and structure of animals.
Mathematical Morphology Lecture 14 Course book reading: GW Lucia Ballerini Digital Image Processing.
Chapter 9.  Mathematical morphology: ◦ A useful tool for extracting image components in the representation of region shape.  Boundaries, skeletons,
CS 6825: Binary Image Processing – binary blob metrics
Course Syllabus 1.Color 2.Camera models, camera calibration 3.Advanced image pre-processing Line detection Corner detection Maximally stable extremal regions.
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 Chapter 9: Morphological Image Processing 5 September 2007 Digital Image Processing Chapter 9: Morphological Image Processing.
Morphological Image Processing
Gianni Ramponi University of Trieste Images © 2002 Gonzalez & Woods Digital Image Processing Chapter 9 Morphological Image.
1 Regions and Binary Images Hao Jiang Computer Science Department Sept. 25, 2014.
Mathematical Morphology Mathematical morphology (matematická morfologie) –A special image analysis discipline based on morphological transformations of.
CSE554SkeletonsSlide 1 CSE 554 Lecture 2: Shape Analysis (Part I) Fall 2015.
Computational Biology, Part 22 Biological Imaging II Robert F. Murphy Copyright  1996, 1999, All rights reserved.
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2015.
1 Euler Number Computation By Kishore Kulkarni (Under the Guidance of Dr. Longin Jan Latecki)
1 Regions and Binary Images Hao Jiang Computer Science Department Sept. 24, 2009.
CS 376b Introduction to Computer Vision 02 / 11 / 2008 Instructor: Michael Eckmann.
CS654: Digital Image Analysis
Mathematical Morphology
References Books: Chapter 11, Image Processing, Analysis, and Machine Vision, Sonka et al Chapter 9, Digital Image Processing, Gonzalez & Woods.
CS654: Digital Image Analysis
CDS 301 Fall, 2008 Image Visualization Chap. 9 November 11, 2008 Jie Zhang Copyright ©
EE 4780 Morphological Image Processing. Bahadir K. Gunturk2 Example Two semiconductor wafer images are given. You are supposed to determine the defects.
1 Mathematic Morphology used to extract image components that are useful in the representation and description of region shape, such as boundaries extraction.
Morphological Image Processing Robotics. 2/22/2016Introduction to Machine Vision Remember from Lecture 12: GRAY LEVEL THRESHOLDING Objects Set threshold.
BYST Morp-1 DIP - WS2002: Morphology Digital Image Processing Morphological Image Processing Bundit Thipakorn, Ph.D. Computer Engineering Department.
Machine Vision ENT 273 Hema C.R. Binary Image Processing Lecture 3.
Lecture(s) 3-4. Morphological Image Processing. 3/13/20162 Introduction ► ► Morphology: a branch of biology that deals with the form and structure of.
Lecture 11+x+1 Chapter 9 Morphological Image Processing.
CSE 554 Lecture 2: Shape Analysis (Part I)
Digital Image Processing CP-7008 Lecture # 09 Morphological Image Processing Fall 2011.
Bitmap Image Vectorization using Potrace Algorithm
Game Theoretic Image Segmentation
Introduction to Morphological Operators
Lecture 8 Introduction to Binary Morphology
Computer Vision Lecture 5: Binary Image Processing
Binary Image Analysis used in a variety of applications:
CS Digital Image Processing Lecture 5
Binary Image processing بهمن 92
Morphological Image Processing
Digital Image Processing Lecture 15: Morphological Algorithms
CSE 554 Lecture 3: Shape Analysis (Part II)
Binary Image Analysis: Part 2 Readings: Chapter 3:
Morphological Operators
ECE 692 – Advanced Topics in Computer Vision
CS654: Digital Image Analysis
Binary Image Analysis used in a variety of applications:
Presentation transcript:

CSE 554 Lecture 1: Binary Pictures Fall 2016

Geometric Forms Continuous forms Discrete forms Curves Surfaces Continuous forms Defined by mathematical functions E.g.: parabolas, splines, subdivision surfaces Discrete forms Disjoint elements with connectivity relations E.g.: polylines, triangle surfaces, pixels and voxels Polyline Triangle surfaces Pixels Voxels

Digital Pictures Made up of discrete points associated with colors Image: 2D array of pixels 2D Image

Digital Pictures Color representations B R G Grayscale: 1 value representing grays from black (lowest value) to white (highest value) 8-bit (0-255), 16-bit, etc. RGB: 3 values each representing colors from black (lowest value) to pure red, green, or blue (highest value). 24-bit (0-255 in each color) XYZ, HSL/HSV, CMYK, etc. Low High Grayscale Low R High R Low G High G Low B High B RGB Check Mod_intro for RGB applet B R G

Digital Pictures Made up of discrete points associated with colors Volume: 3D array of voxels Voxel 3D Volume

Binary Pictures A grayscale picture with 2 colors: black (0) and white (1) The set of 1 or 0 pixels (voxels) is called object or background A “blocky” geometry Background Analogy: Lego, Minecraft Object

Binary Pictures Creation Processing

Segmentation Separating object from background in a grayscale picture A simple method: thresholding by pixel (voxel) color All pixels (voxels) with color above a threshold is set to 1 Check Mod_1 for thresholding applet Grayscale picture Thresholded binary picture

Segmentation Separating object from background in a grayscale picture A simple method: thresholding by pixel (voxel) color Other methods: K-means clustering Watershed Region growing Snakes and Level set Graph cut … More details covered in Computer Vision course Check Mod_1 for thresholding applet

Rasterization Filling the interior of a shape by pixels or voxels Known as “scan-conversion”, or “pixelization / voxelization” More details covered in Computer Graphics course 2D Polygon Binary Picture

Binary Pictures Creation Processing

Binary Pictures Removing islands and holes Smoothing jagged boundaries

Removing Islands & Holes Observations: Islands (holes) of the object are holes (islands) of the background Islands (holes) are not as well-connected as the object (background). Take the largest 2 connected components of the object Invert the largest connected component of the background

Connected Components Definition A maximum set of pixels (voxels) in the object or background, such that any two pixels (voxels) in the set are connected by a path of connected pixels (voxels)

Connected Components How many connected components are there in the object? What about background?

Connectivity (2D) Two pixels are connected if their squares share: A common edge 4-connectivity A common vertex 8-connectivity Two connected pixels All pixels connected to x x 4-connectivity x 8-connectivity

Connectivity (2D) Object: 8-connectivity (1 comp)

Connectivity (2D) What connectivity should be used for the background? Object: 8-connectivity (1 comp) Object: 4-connectivity (4 comp) Background: 8-connectivity (1 comp) Background: 4-connectivity (2 comp) Paradox: a closed curve does not disconnect the background, while an open curve does.

Connectivity (2D) Different connectivity for object (O) and background (B) 2D pixels: 4- and 8-connectivity respectively for O and B (or B and O) Object: 8-connectivity (1 comp) Object: 4-connectivity (4 comp) Background: 4-connectivity (2 comp) Background: 8-connectivity (1 comp)

Connectivity (3D) Two voxels are connected if their cubes share: A common face 6-connectivity A common edge 18-connectivity A common vertex 26-connectivity Use 6- and 26-connectivity respectively for O and B (or B and O) Two connected voxels All voxels connected to the center voxel 6-connectivity 18-connectivity 26-connectivity

Finding Connected Components The “flooding” algorithm Start from a seed pixel/voxel, expand the connected component Either do depth-first or breadth-first search (a LIFO stack or FIFO queue) // Finding the connected component containing an object pixel p Initialize Create a result set S that contains only p Create a Visited flag at each pixel, and set it to be False except for p Initialize a queue (or stack) Q that contains only p. Repeat until Q is empty: Pop a pixel x from Q. For each unvisited object pixel y connected to x, add y to S, set its flag to be visited, and push y to Q. Output S Turn to the applet in Mod_1 (and diff between 8 and 4 conn), using coarse bone

Finding Connected Components Why using a “visited” flag? Otherwise, the program will not terminate Why not checking to see if y is in S? Checking the visited flag is much faster ( O(1) vs. O(log n) ) … Repeat until Q is empty: Pop a pixel x from Q. For each unvisited object pixel y connected to x, add y to S, set its flag to be visited, and push y to Q. Output S

Connectivity (2D) Connected components containing the blue pixel:

Finding Connected Components Labeling all components in an image: Loop through each pixel (voxel). If it is not labeled, use it as a seed to find a connected component, then label all pixels (voxels) in the component. One component Two components 8-connected object 4-connected object

Using Connected Components Pruning isolated islands from the main object Filling interior holes of the object Take the largest components of the object Invert the largest components of the background

Morphological Operators Smoothing out object boundary Opening Closing

Morphological Operators Operations to change shapes Erosion Dilation Opening: first erode, then dilate. Closing: first dilate, then erode.

Mathematical Morphology Input: x Object (A) Structure element (Bx) Erosion Dilation 𝑨⊕𝑩= 𝒙∈𝑨 𝑩 𝒙 𝑨⊖𝑩={𝒙∈𝑨| 𝑩 𝒙 ⊆𝑨}

Mathematical Morphology Structure element B is symmetric if: Examples: 𝒙∈ 𝑩 𝒚 ⟺𝒚∈ 𝑩 𝒙 𝒚 𝒚 𝒙 𝒙 𝒙 𝒚 Circle Square Triangle

Mathematical Morphology Duality (for symmetric structuring elements) Erosion (dilation) is equivalent to dilation (erosion) of the background Erosion Dilation 𝑨⊖𝑩= 𝑨 ⊕𝑩 𝑨⊕𝑩= 𝑨 ⊖𝑩

Mathematical Morphology Opening (erode, then dilate) Union of all B that can fit inside A Shaves off convex corners and thin spikes x Object (A) Structure element (Bx) Opening 𝑨∘𝑩=(𝑨⊝𝑩)⊕𝑩

Mathematical Morphology Closing (dilate, then erode) Complement of union of all B that can fit in the complement of A Fills concave corners and thin tunnels x Structure element (Bx) Closing Object (A) 𝑨⋅𝑩=(𝑨⊕𝑩)⊝𝑩

Mathematical Morphology Duality, again! (for symmetric structuring elements) Opening (closing) object is equivalent to closing (opening) background Opening Closing 𝑨∘𝑩= 𝑨 ⋅𝑩 𝑨⋅𝑩= 𝑨 ∘𝑩

Digital Morphology Structuring elements (symmetric) 2D pixels: square or cross 3D voxels: cube or cross x x

Digital Morphology Structuring element: Erosion e: an object pixel with some background pixel in its square neighborhood Dilation d: a background pixel with some object pixel in its square neighborhood x e d

Digital Morphology Structuring element: 3x3 square Opening Closing Erosion Dilation Union of white squares within the object d e Dilation Erosion Union of black squares within the background

Digital Morphology Increasing the size of the structuring element Leads to more growing/shrinking and more significant smoothing Equivalent to repeated applications with a small structuring element E.g.: k erosions (dilations) followed by k dilation (erosions) with a 3x3 square is equivalent to opening (closing) with a (2k+1)x(2k+1) square. Original Opening by 3x3 square Opening by 5x5 square

Digital Morphology Implementation tips Using duality of erosion and dilation, you only need to implement one function to do both morphological operations (for symmetric structure elements). Dilation is same as erosion of the background When performing multiple-round opening, make sure you first do k times erosion then k times dilation What happens if you alternate erosion and dilation for k times? Handle image boundary in a graceful way (not crashing the program…) For example, treat outside of the image as background

Lab Module 1 A simple 2D segmentation routine Initial segmentation using thresholding (using your code from Lab 0) Using connected components and opening/closing to “clean up” the segmentation.