CS 5540 Spring 2013 Assignment 3, v1.0 Due: Apr. 24th 11:59PM

Size: px
Start display at page:

Download "CS 5540 Spring 2013 Assignment 3, v1.0 Due: Apr. 24th 11:59PM"

Transcription

1 1 Introduction In this programming project, we are going to do a simple image segmentation task. Given a grayscale image with a bright object against a dark background and we are going to do a binary decision problem for each pixel whether it belongs to foreground or background. You will play with both synthetic data and real data and you are supposed to implement both the threshold algorithm and graph cut algorithm we learned in the lecture and understand them better. Again, this assignment can be done individually or in pairs, though we strongly encourage you to work in pairs. You can use any languages to do it. You are supposed to implement your own algorithms so that you CANNOT use any built-in functions or third-party code of these algorithms directly EXCEPT that you can use or translate the code which we provide on solving min-cut problem. If you have any questions about this requirement, please ask the TA (chenwang@cs.cornell.edu). 2 Assignment Submission Please submit an archived file through CMS including your report and source code. You are supposed to include a brief description on the technique choices (like parameters, energy functions, etc.) you made in your algorithm. For each image segmentation task, you are supposed to provide at least one mask image and its corresponding extracted foreground (please see Sec. 3.1 for more details and examples). It s better if you can provide multiple results using different techniques and compare them. 3 Assignment 3.1 Task Definition Definition 3.1 (Grayscale Image). In a computer system, a grayscale image can be represented by a 2-D matrix. Suppose we have H W pixels in the image, we will represent it as an H W matrix I where each entry I ij is the intensity of the corresponding pixel on the i-th row and j-th column. Typically, the intensity is an integer with range [0, 255] where 0 indicates black and 255 indicates white. Definition 3.2 (Binary Image Segmentation). In a binary image segmentation task, we would like to classify each pixel into 2 categories (i.e., foreground and background). In other words, we would like to work out a function f : [0, 255] H W {0, 1} H W which takes an image as input and output a 0,1-matrix with the same size where 0 indicates background pixel and 1 indicates foreground pixel. Sometimes we also name the output as mask matrix and we can visualize it as an image. Definition 3.3 (Extracted Foreground). We define extracted foreground as an image which keeps the original foreground and leaves all the background pixels as black. Formally, suppose Y = f(i), we can define O as the extracted foreground by: O ij = Y ij I ij (1) The following figure illustrates the original image, mask image and the extracted foreground. You are also supposed to include the mask image and extracted foreground for each segmentation in your experiments. 3.2 Threshold-based Segmentation Simple Thresholding Algorithm Since in our simple binary image segmentation task, we assume that the object is always bright while the background is always dark, a naive way to do the segmentation is to set up a threshold t and apply the 1

2 Figure 1: Input Image Figure 2: Mask Image (Binary Segmentation Result) Figure 3: Extracted Foreground thresholding function to each pixel. I.e., given image I H W, we obtain our result (mask matrix) Y H W as: Y ij = { 1, Iij t 0, I ij < t (2) However, real images are not ideal. So that the simple thresholding algorithm is vulnerable to noise, and the boundary we got may not be smooth. Therefore, we alway perform some pre-processing and post-processing to enhance our result. I will introduce two typical filters for pre-processing and post-processing respectively Mean Filter Denoising We can generalize our 1-D mean filter into 2-D space to do the denoising task before we do the segmentation. The idea is still to replace the intensity of each pixel by its local average. Typically, given any pixel, we will define all the pixels within Manhattan Distance k as its neighbor, i.e., a square with length 2k + 1 centered at the given pixel. Here, k is a parameter. Note that we may also take a different treatment to the boundary pixels this time, see the formal definition below. We can define our neighbor set N (x, y) and the image I after denoising in the following way: N (x, y) = {(i, j) } 1 i H, 1 j W, x i + y i k (3) I xy = (i,j) N (x,y) I ij N (x, y) (4) Morphological Filters To refine the segmentation result, we would like to do some post-processing on our result. Morphological filters are classic tools to tackle this issue. Two fundamental operations are dilation and erosion. In dilation, if any neighborhood pixel is foreground, it becomes foreground. In erosion, if any neighborhood pixel is background, it becomes background. Common morphological filter applies one dilation operation firstly, then followed by an erosion operation. It can fill in some holds in the segmentation result and makes the boundary more smooth. You also need to define the neighbor set for morphological filter. In practice, this neighbor set is typically very small, e.g., k 3 for the Manhattan distance we defined above Your Task You are suppose to do the following tasks in this part: Implement thresholding algorithm and 2-D mean filters. (Optional) Implement Morphological filters. 2

3 Figure 4: Example for a graph Choose proper threshold t, apply simple thresholding algorithm on groundtruth.png in synthetic data. Apply simple thresholding algorithm on noisy.png in synthetic data. Analyze why a simple thresholding strategy fails in this case. Choose proper size k, apply mean filter on noisy.png, then apply the simple thresholding algorithm to do the segmentation. (Optional: apply morphological filters to refine the result.) With the experience in the synthetic data, conduct segmentation for each image in real data using thresholding algorithm. (Optional: you can add more fun things beyond the mean filter and morphological filters to make the results better.) 3.3 Graph Cut-based Segmentation Preliminary This part will introduce some basic knowledge in graph theory, including direct graph, flow, cut, etc. If you have already know these kind of things or you are not interested in reading too much maths, you can skip the formal definition. But PLEASE try to understand all the examples here, which may help you understand the high-level ideas of these mathematical tools and build our own models in image segmentation task better. Some materials of this part come from Dexter Kozen s textbook [1]. If you are interested in this staff, you can take CS 4820 or CS 6820 for more details. Definition 3.4 (Directed Graph). A directed graph G is defined by a tuple G = (V, E). Here V is a vertex set which represents the nodes in the graph. E V 2 is an edges set which represents the directed links between a pair of nodes. Example of graph: Fig. 4 illustrates an example of a directed graph. There are 3 nodes and 3 directed edges in the graph. Here our vertex set V = {1, 2, 3}, and out edge set E = {(1, 2), (2, 3), (3, 1)}. Note that we use ordered pair to represent directed edge, i.e., (1, 2) is an edge pointed from node 1 to node 2 (see the arrow in the example), which is different from edge (2, 1). Suppose we are given a tuple G = (V, c, s, t), where V is a set of vertices, s, t V are distinguished vertices which are called the source and sink respectively, and c is a function c : V 2 R + assigning a nonnegative real capacity to each pair of vertices. We make G into a directed graph by defining the set of directed edges: E = { (u, v) c(u, v) > 0 } (5) Definition 3.5 (Flow). A function f : V 2 R is called a flow if the following three conditions are satisfied: capacity constraints: for all vertex u, v V, we have f(u, v) c(u, v) skew symmetry: for all u, v V, we have f(u, v) = f(v, u) 3

4 Figure 5: Example for a flow conservation of flow: for all vertex v V except s and t, we have v V f(u, v) = 0 Definition 3.6 (Max Flow Problem). We can define the value of a flow f as the total amount of flow from the source, i.e., f = f(s, v) (6) v V The max flow problem is to find the flow f with the maximum value f. Example of flow: The intuition of a flow comes from the water flow in pipes. We use a graph to describe the connection of pipes, we use the capacity function c to describe the capacity for each pipe and we use flow function f to describe the amount of water go through each pipe in unit time. An interpretation of the 3 properties in our definition of flow is: 1) Capacity constraints says we cannot push too much water into any pipe which exceeds its capacity in unit time. 2) Skew symmetry is somehow counter-intuitive, we can understand that I give you 5 gallons of water means you receive 5 gallons of water from me. An awkward way to express the same thing maybe I give you 5 gallons of water mean you give me -5 gallons of water. 3) Combining with the second property, conservation of flow says for each internal node, the amount of water it received from other nodes is equal to the amount of water it pushes to other nodes. In other words, internal nodes cannot store waters. Only source node s can generate water while sink node t can store water in our water system. Fig. 5 illustrates an example of a flow network and its flow. The numbers f/c on each edge are its corresponding flow and capacity. To keep the figure clean, I don t draw lines with 0-capacity and negative flow. But we should know that f(s, 1) = 2 implies f(1, s) = 2. We can verify the capacity constraints and conservation of flow holds in this example. For example, for node 4, it receive 1 gallon of water from node 1 and 3 gallons of water from node 2. It also pushes 4 gallons of water towards sink node t. By the way, this flow illustrated in the figure is also the max flow, with value f = 5. Definition 3.7 (s,t-cut). An s,t-cut is a pair A, B of disjoint subsets of V whose union is V such that s A, t B. The capacity of the cut A, B, denoted c(a, B), is: c(a, B) = c(u, v) (7) u A,v B Definition 3.8 (Min Cut Problem). Given the tuple G = (V, c, s, t), find the s,t-cut A, B with the minimal capacity value. Example of cut: In Fig. 6, the dotted line separate the vertex set into A = {s, 1, 2, 4} and B = {3, t}. The capacity of this cut is c(a, B) = 5. By the way, this is also the min-cut of this graph. Theorem 3.9 (Max Flow-Min Cut Theorem). Suppose f is the max flow in G = (V, c, s, t) and A, B is the min cut in G = (V, c, s, t), then we have: f = c(a, B). An intuitive interpretation of this theorem is the maximum flow in a pipe system is bounded by the bottleneck pipes in the system. We can also see from the examples above that the value of max flow agrees with the capacity of min-cut in our example. 4

5 Figure 6: Example for a cut Graph Cut for Image Segmentation Just as we learned from lecture, our energy function will be a combination of data term and prior term. E(L) = D p (L p ) + λ P pq I(L p L q ) (8) p where both D p and P pq are some kinds of penalty function. D p (L p ) describes the penalty of we label pixel p as L p. P pq is the penalty of two neighbor pixels p and q with different labels. There are many choices for these penalty functions, most of them are depend on the intensity of pixels. To convert this energy minimization problem into a min-cut problem. We need to define the flow network in the following way: pq N We treat each pixel p we need to label as one node n p in the graph. We need to add one special source node s and one special sink node t into the graph. We add an directed edge from source s to each internal node n p with capacity D p (1) while we add an directed edge from each internal node n p to sink t with capacity D p (0). For each pair of pixels p and q appears in our neighborhood system N, we add two directed edges (n p, n q ) and (n q, n p ) with both capacity λp pq. Fig. 7[2] is a very good example to illustrated to procedure described above. Suppose (A, B) is an arbitrary cut in the graph we defined above, then we label each pixel p A as 0 (background) and other pixels q B as 1 (foreground). One claim is c(a, B) = E(L). We can prove this by some computation: c(a, B) = p A,q B c(p, q) (defintion of cut) = q B {t} c(s, q) + p A {s} c(p, t) + p A {s},q B {t} c(p, q) (note that c(s, t) = 0) = q B {t} D q(1) + p A {s} D p(0) + p A {s},q B {t} λp pq = p D p(l p ) + λ pq N,L p L q P pq = p D p(l p ) + λ pq N P pqi(l p L q ) = E(L) (9) Therefore, we can also see that the optimal labels in our binary segmentation task to minimize the energy function is equivalent to the min-cut in the graph we defined. For more details about the formulation of the problem and the choices of penalty functions, please refer Boykov and Funka-Lea s paper [2], especially Section. 2.1, 2.2, 2.3 and

6 Figure 7: Example of image segmentation using graph cut[2] Usage of Dinic Class The algorithm to solve a max-flow (min-cut) problem is not trivial and far more than the requirement of the course. Therefore, we provided an implementation of Dinic Algorithm to solve this the max-flow and min-cut problem. You can use this code as a subroutine in your assignment. This code is written in C++, but you can easily translate it into your own programming language since there are only 144 lines of code. You don t need to understand how does this code works. You need to follow the following instructions to use this code: Step 1: Initialize an instance of Dinic class. Please also specify the number of vertices and edges of your graph as the first and second parameters in the constructor in this step. They will be used to allocate arrays in the memory so that please make sure that they are big enough. Step 2: Call AddEdge(s, t, c) to add edges of the graph one by one. The parameters means that we will add a directed edge from node s to node t with capacity c. This operation is additive, i.e., AddEdge(1,2,1);AddEdge(1,2,2); is equivalent to AddEdge(1,2,3). By the way, AddEdge(s,t,c,true); is a syntax sugar for AddEdge(s,t,c);Add(t,s,c);. You may find this one useful when you define prior terms. Step 3: Call MaxFlow() to calculate the max flow of the graph. Step 4: Call MinCut() to get the min cut set of the graph. This function will return a boolean array which indicates whether each variable belongs to set A. Please note that min-cut is computed based on the max flow. So please make sure that call MaxFlow() before MinCut(). The main function in the provided code illustrate how to get the results in Fig. 5 and Fig. 6. It should generate the max flow as 5 and min cut set A = {0, 1, 2, 4} and B = {3, 5}. You can use this one or some other toy problems as a test case for your own translation version. Please contact TA when you have any questions about the usage of this code. 6

7 3.3.4 Your Task You are supposed to do the following things in this part: Implement graph-cut algorithm for image segmentation using (or translating) the program we provided to solve the min-cut problem as a sub-routine. Choose proper parameters, define the penalty functions used in the energy function of graph cut, conduct graph-cut based segmentation for each images in both synthetic and real dataset. You may choose you own way to do the pre-processing and post-processing. Note that this parameter (including the parameters in the penalty functions) are task-specific, which means you may need to tune them for each image. And the quality of the final segmentation result will be heavily relied on these parameters and functions. Compare the result of threshold based segmentation and graph-cut based segmentation. Please also note that for some big images, it may takes several minutes for Dinic Algorithm to optimize the energy function. (According to my own experiment) So please try to use some efficient programming languages this time. The speed of the algorithm also depends on the size of your neighbor system, please try smaller neighbor system (like 4-neighbor system) when it takes too much time. In case of the program is still very slow, you can down sampling the original image to get a smaller image (which means a smaller graph). But remember, this is the last way out. Only use it when necessary. 4 Academic Integrity Academic integrity is important in this course. cornell.edu/academic/aic.html). You must follow the school s code ( Since this is a programming project, we would like to emphasize the following rules: Having discussions with other people, using open sources and public tools, getting ideas from research papers is allowed, but proper citations and acknowledgements are required. Otherwise, any direct or indirect copy from other s work, Internet, etc. is strictly forbidden. All the results you reported in this project must be generated by your submitted programs. Violations of academic integrity are taken very seriously. Please feel free to contact Professor Zabih if you have any questions or concerns about this topic, or if you feel there is any possibility that you may be violating the code of academic integrity. References [1] D.C. Kozen, The design and analysis of algorithms, Springer, [2] Y. Boykov, and G. Funka-Lea, Graph cuts and efficient ND image segmentation, International Journal of Computer Vision 70 (2006), pp

Introduction. Computer Vision & Digital Image Processing. Preview. Basic Concepts from Set Theory

Introduction. Computer Vision & Digital Image Processing. Preview. Basic Concepts from Set Theory Introduction Computer Vision & Digital Image Processing Morphological Image Processing I Morphology a branch of biology concerned with the form and structure of plants and animals Mathematical morphology

More information

Morphological Image Processing

Morphological Image Processing Morphological Image Processing Binary image processing In binary images, we conventionally take background as black (0) and foreground objects as white (1 or 255) Morphology Figure 4.1 objects on a conveyor

More information

Morphological Image Processing

Morphological Image Processing Morphological Image Processing Ranga Rodrigo October 9, 29 Outline Contents Preliminaries 2 Dilation and Erosion 3 2. Dilation.............................................. 3 2.2 Erosion..............................................

More information

Morphological Image Processing

Morphological Image Processing Morphological Image Processing Morphology Identification, analysis, and description of the structure of the smallest unit of words Theory and technique for the analysis and processing of geometric structures

More information

Maximum flows & Maximum Matchings

Maximum flows & Maximum Matchings Chapter 9 Maximum flows & Maximum Matchings This chapter analyzes flows and matchings. We will define flows and maximum flows and present an algorithm that solves the maximum flow problem. Then matchings

More information

From Pixels to Blobs

From Pixels to Blobs From Pixels to Blobs 15-463: Rendering and Image Processing Alexei Efros Today Blobs Need for blobs Extracting blobs Image Segmentation Working with binary images Mathematical Morphology Blob properties

More information

Biomedical Image Analysis. Mathematical Morphology

Biomedical Image Analysis. Mathematical Morphology Biomedical Image Analysis Mathematical Morphology Contents: Foundation of Mathematical Morphology Structuring Elements Applications BMIA 15 V. Roth & P. Cattin 265 Foundations of Mathematical Morphology

More information

Graphs, graph algorithms (for image segmentation),... in progress

Graphs, graph algorithms (for image segmentation),... in progress Graphs, graph algorithms (for image segmentation),... in progress Václav Hlaváč Czech Technical University in Prague Czech Institute of Informatics, Robotics and Cybernetics 66 36 Prague 6, Jugoslávských

More information

MULTI-REGION SEGMENTATION

MULTI-REGION SEGMENTATION MULTI-REGION SEGMENTATION USING GRAPH-CUTS Johannes Ulén Abstract This project deals with multi-region segmenation using graph-cuts and is mainly based on a paper by Delong and Boykov [1]. The difference

More information

CAP5415-Computer Vision Lecture 13-Image/Video Segmentation Part II. Dr. Ulas Bagci

CAP5415-Computer Vision Lecture 13-Image/Video Segmentation Part II. Dr. Ulas Bagci CAP-Computer Vision Lecture -Image/Video Segmentation Part II Dr. Ulas Bagci bagci@ucf.edu Labeling & Segmentation Labeling is a common way for modeling various computer vision problems (e.g. optical flow,

More information

CS6670: Computer Vision

CS6670: Computer Vision CS6670: Computer Vision Noah Snavely Lecture 19: Graph Cuts source S sink T Readings Szeliski, Chapter 11.2 11.5 Stereo results with window search problems in areas of uniform texture Window-based matching

More information

Processing of binary images

Processing of binary images Binary Image Processing Tuesday, 14/02/2017 ntonis rgyros e-mail: argyros@csd.uoc.gr 1 Today From gray level to binary images Processing of binary images Mathematical morphology 2 Computer Vision, Spring

More information

Lecture 11: Maximum flow and minimum cut

Lecture 11: Maximum flow and minimum cut Optimisation Part IB - Easter 2018 Lecture 11: Maximum flow and minimum cut Lecturer: Quentin Berthet 4.4. The maximum flow problem. We consider in this lecture a particular kind of flow problem, with

More information

EE 584 MACHINE VISION

EE 584 MACHINE VISION EE 584 MACHINE VISION Binary Images Analysis Geometrical & Topological Properties Connectedness Binary Algorithms Morphology Binary Images Binary (two-valued; black/white) images gives better efficiency

More information

Image Processing. Bilkent University. CS554 Computer Vision Pinar Duygulu

Image Processing. Bilkent University. CS554 Computer Vision Pinar Duygulu Image Processing CS 554 Computer Vision Pinar Duygulu Bilkent University Today Image Formation Point and Blob Processing Binary Image Processing Readings: Gonzalez & Woods, Ch. 3 Slides are adapted from

More information

Binary Image Processing. Introduction to Computer Vision CSE 152 Lecture 5

Binary Image Processing. Introduction to Computer Vision CSE 152 Lecture 5 Binary Image Processing CSE 152 Lecture 5 Announcements Homework 2 is due Apr 25, 11:59 PM Reading: Szeliski, Chapter 3 Image processing, Section 3.3 More neighborhood operators Binary System Summary 1.

More information

CITS 4402 Computer Vision

CITS 4402 Computer Vision CITS 4402 Computer Vision A/Prof Ajmal Mian Adj/A/Prof Mehdi Ravanbakhsh, CEO at Mapizy (www.mapizy.com) and InFarm (www.infarm.io) Lecture 02 Binary Image Analysis Objectives Revision of image formation

More information

s-t Graph Cuts for Binary Energy Minimization

s-t Graph Cuts for Binary Energy Minimization s-t Graph Cuts for Binary Energy Minimization E data term ( L) = D ( ) + ( ) P Lp λ Ι Lp Lq p prior term Now that we have an energy function, the big question is how do we minimize it? pq N n Exhaustive

More information

CS 217 Algorithms and Complexity Homework Assignment 2

CS 217 Algorithms and Complexity Homework Assignment 2 CS 217 Algorithms and Complexity Homework Assignment 2 Shanghai Jiaotong University, Fall 2015 Handed out on 2015-10-19 Due on 2015-10-26 You can hand in your solution either as a printed file or hand-written

More information

CS4670 / 5670: Computer Vision Noah Snavely

CS4670 / 5670: Computer Vision Noah Snavely { { 11/26/2013 CS4670 / 5670: Computer Vision Noah Snavely Graph-Based Image Segmentation Stereo as a minimization problem match cost Want each pixel to find a good match in the other image smoothness

More information

Maximum flows and minimal cuts. Filip Malmberg

Maximum flows and minimal cuts. Filip Malmberg Maximum flows and minimal cuts Filip Malmberg MSF cuts I A Minimum Spanning Forest with respect to a set of seed-points divides a graph into a number of connected components. Thus, it defines a cut on

More information

morphology on binary images

morphology on binary images morphology on binary images Ole-Johan Skrede 10.05.2017 INF2310 - Digital Image Processing Department of Informatics The Faculty of Mathematics and Natural Sciences University of Oslo After original slides

More information

09/11/2017. Morphological image processing. Morphological image processing. Morphological image processing. Morphological image processing (binary)

09/11/2017. Morphological image processing. Morphological image processing. Morphological image processing. Morphological image processing (binary) Towards image analysis Goal: Describe the contents of an image, distinguishing meaningful information from irrelevant one. Perform suitable transformations of images so as to make explicit particular shape

More information

Image Enhancement Using Fuzzy Morphology

Image Enhancement Using Fuzzy Morphology Image Enhancement Using Fuzzy Morphology Dillip Ranjan Nayak, Assistant Professor, Department of CSE, GCEK Bhwanipatna, Odissa, India Ashutosh Bhoi, Lecturer, Department of CSE, GCEK Bhawanipatna, Odissa,

More information

MEDICAL IMAGE COMPUTING (CAP 5937) LECTURE 10: Medical Image Segmentation as an Energy Minimization Problem

MEDICAL IMAGE COMPUTING (CAP 5937) LECTURE 10: Medical Image Segmentation as an Energy Minimization Problem SPRING 06 MEDICAL IMAGE COMPUTING (CAP 97) LECTURE 0: Medical Image Segmentation as an Energy Minimization Problem Dr. Ulas Bagci HEC, Center for Research in Computer Vision (CRCV), University of Central

More information

Graph Based Image Segmentation

Graph Based Image Segmentation AUTOMATYKA 2011 Tom 15 Zeszyt 3 Anna Fabijañska* Graph Based Image Segmentation 1. Introduction Image segmentation is one of the fundamental problems in machine vision. In general it aims at extracting

More information

C E N T E R A T H O U S T O N S C H O O L of H E A L T H I N F O R M A T I O N S C I E N C E S. Image Operations II

C E N T E R A T H O U S T O N S C H O O L of H E A L T H I N F O R M A T I O N S C I E N C E S. Image Operations II T H E U N I V E R S I T Y of T E X A S H E A L T H S C I E N C E C E N T E R A T H O U S T O N S C H O O L of H E A L T H I N F O R M A T I O N S C I E N C E S Image Operations II For students of HI 5323

More information

Chapter 9 Morphological Image Processing

Chapter 9 Morphological Image Processing Morphological Image Processing Question What is Mathematical Morphology? An (imprecise) Mathematical Answer A mathematical tool for investigating geometric structure in binary and grayscale images. Shape

More information

Symbol Detection Using Region Adjacency Graphs and Integer Linear Programming

Symbol Detection Using Region Adjacency Graphs and Integer Linear Programming 2009 10th International Conference on Document Analysis and Recognition Symbol Detection Using Region Adjacency Graphs and Integer Linear Programming Pierre Le Bodic LRI UMR 8623 Using Université Paris-Sud

More information

What will we learn? What is mathematical morphology? What is mathematical morphology? Fundamental concepts and operations

What will we learn? What is mathematical morphology? What is mathematical morphology? Fundamental concepts and operations What will we learn? What is mathematical morphology and how is it used in image processing? Lecture Slides ME 4060 Machine Vision and Vision-based Control Chapter 13 Morphological image processing By Dr.

More information

COMP 558 lecture 22 Dec. 1, 2010

COMP 558 lecture 22 Dec. 1, 2010 Binocular correspondence problem Last class we discussed how to remap the pixels of two images so that corresponding points are in the same row. This is done by computing the fundamental matrix, defining

More information

CS443: Digital Imaging and Multimedia Binary Image Analysis. Spring 2008 Ahmed Elgammal Dept. of Computer Science Rutgers University

CS443: Digital Imaging and Multimedia Binary Image Analysis. Spring 2008 Ahmed Elgammal Dept. of Computer Science Rutgers University CS443: Digital Imaging and Multimedia Binary Image Analysis Spring 2008 Ahmed Elgammal Dept. of Computer Science Rutgers University Outlines A Simple Machine Vision System Image segmentation by thresholding

More information

LATIN SQUARES AND TRANSVERSAL DESIGNS

LATIN SQUARES AND TRANSVERSAL DESIGNS LATIN SQUARES AND TRANSVERSAL DESIGNS *Shirin Babaei Department of Mathematics, University of Zanjan, Zanjan, Iran *Author for Correspondence ABSTRACT We employ a new construction to show that if and if

More information

Lecture 3: Art Gallery Problems and Polygon Triangulation

Lecture 3: Art Gallery Problems and Polygon Triangulation EECS 396/496: Computational Geometry Fall 2017 Lecture 3: Art Gallery Problems and Polygon Triangulation Lecturer: Huck Bennett In this lecture, we study the problem of guarding an art gallery (specified

More information

Statistical and Learning Techniques in Computer Vision Lecture 1: Markov Random Fields Jens Rittscher and Chuck Stewart

Statistical and Learning Techniques in Computer Vision Lecture 1: Markov Random Fields Jens Rittscher and Chuck Stewart Statistical and Learning Techniques in Computer Vision Lecture 1: Markov Random Fields Jens Rittscher and Chuck Stewart 1 Motivation Up to now we have considered distributions of a single random variable

More information

Homework 3 Solutions

Homework 3 Solutions CS3510 Design & Analysis of Algorithms Section A Homework 3 Solutions Released: 7pm, Wednesday Nov 8, 2017 This homework has a total of 4 problems on 4 pages. Solutions should be submitted to GradeScope

More information

ADAPTIVE GRAPH CUTS WITH TISSUE PRIORS FOR BRAIN MRI SEGMENTATION

ADAPTIVE GRAPH CUTS WITH TISSUE PRIORS FOR BRAIN MRI SEGMENTATION ADAPTIVE GRAPH CUTS WITH TISSUE PRIORS FOR BRAIN MRI SEGMENTATION Abstract: MIP Project Report Spring 2013 Gaurav Mittal 201232644 This is a detailed report about the course project, which was to implement

More information

Image Segmentation. Srikumar Ramalingam School of Computing University of Utah. Slides borrowed from Ross Whitaker

Image Segmentation. Srikumar Ramalingam School of Computing University of Utah. Slides borrowed from Ross Whitaker Image Segmentation Srikumar Ramalingam School of Computing University of Utah Slides borrowed from Ross Whitaker Segmentation Semantic Segmentation Indoor layout estimation What is Segmentation? Partitioning

More information

15-451/651: Design & Analysis of Algorithms October 11, 2018 Lecture #13: Linear Programming I last changed: October 9, 2018

15-451/651: Design & Analysis of Algorithms October 11, 2018 Lecture #13: Linear Programming I last changed: October 9, 2018 15-451/651: Design & Analysis of Algorithms October 11, 2018 Lecture #13: Linear Programming I last changed: October 9, 2018 In this lecture, we describe a very general problem called linear programming

More information

Computer Vision 2. SS 18 Dr. Benjamin Guthier Professur für Bildverarbeitung. Computer Vision 2 Dr. Benjamin Guthier

Computer Vision 2. SS 18 Dr. Benjamin Guthier Professur für Bildverarbeitung. Computer Vision 2 Dr. Benjamin Guthier Computer Vision 2 SS 18 Dr. Benjamin Guthier Professur für Bildverarbeitung Computer Vision 2 Dr. Benjamin Guthier 1. IMAGE PROCESSING Computer Vision 2 Dr. Benjamin Guthier Content of this Chapter Non-linear

More information

Image Segmentation Image Thresholds Edge-detection Edge-detection, the 1 st derivative Edge-detection, the 2 nd derivative Horizontal Edges Vertical

Image Segmentation Image Thresholds Edge-detection Edge-detection, the 1 st derivative Edge-detection, the 2 nd derivative Horizontal Edges Vertical Image Segmentation Image Thresholds Edge-detection Edge-detection, the 1 st derivative Edge-detection, the 2 nd derivative Horizontal Edges Vertical Edges Diagonal Edges Hough Transform 6.1 Image segmentation

More information

intro, applications MRF, labeling... how it can be computed at all? Applications in segmentation: GraphCut, GrabCut, demos

intro, applications MRF, labeling... how it can be computed at all? Applications in segmentation: GraphCut, GrabCut, demos Image as Markov Random Field and Applications 1 Tomáš Svoboda, svoboda@cmp.felk.cvut.cz Czech Technical University in Prague, Center for Machine Perception http://cmp.felk.cvut.cz Talk Outline Last update:

More information

CS 473: Algorithms. Ruta Mehta. Spring University of Illinois, Urbana-Champaign. Ruta (UIUC) CS473 1 Spring / 36

CS 473: Algorithms. Ruta Mehta. Spring University of Illinois, Urbana-Champaign. Ruta (UIUC) CS473 1 Spring / 36 CS 473: Algorithms Ruta Mehta University of Illinois, Urbana-Champaign Spring 2018 Ruta (UIUC) CS473 1 Spring 2018 1 / 36 CS 473: Algorithms, Spring 2018 LP Duality Lecture 20 April 3, 2018 Some of the

More information

AMS /672: Graph Theory Homework Problems - Week V. Problems to be handed in on Wednesday, March 2: 6, 8, 9, 11, 12.

AMS /672: Graph Theory Homework Problems - Week V. Problems to be handed in on Wednesday, March 2: 6, 8, 9, 11, 12. AMS 550.47/67: Graph Theory Homework Problems - Week V Problems to be handed in on Wednesday, March : 6, 8, 9,,.. Assignment Problem. Suppose we have a set {J, J,..., J r } of r jobs to be filled by a

More information

CS 664 Segmentation. Daniel Huttenlocher

CS 664 Segmentation. Daniel Huttenlocher CS 664 Segmentation Daniel Huttenlocher Grouping Perceptual Organization Structural relationships between tokens Parallelism, symmetry, alignment Similarity of token properties Often strong psychophysical

More information

SPERNER S LEMMA MOOR XU

SPERNER S LEMMA MOOR XU SPERNER S LEMMA MOOR XU Abstract. Is it possible to dissect a square into an odd number of triangles of equal area? This question was first answered by Paul Monsky in 970, and the solution requires elements

More information

CS4670: Computer Vision

CS4670: Computer Vision CS4670: Computer Vision Noah Snavely Lecture 34: Segmentation From Sandlot Science Announcements In-class exam this Friday, December 3 Review session in class on Wednesday Final projects: Slides due: Sunday,

More information

MEDICAL IMAGE COMPUTING (CAP 5937) LECTURE 10: Medical Image Segmentation as an Energy Minimization Problem

MEDICAL IMAGE COMPUTING (CAP 5937) LECTURE 10: Medical Image Segmentation as an Energy Minimization Problem SPRING 07 MEDICAL IMAGE COMPUTING (CAP 97) LECTURE 0: Medical Image Segmentation as an Energy Minimization Problem Dr. Ulas Bagci HEC, Center for Research in Computer Vision (CRCV), University of Central

More information

Some material taken from: Yuri Boykov, Western Ontario

Some material taken from: Yuri Boykov, Western Ontario CS664 Lecture #22: Distance transforms, Hausdorff matching, flexible models Some material taken from: Yuri Boykov, Western Ontario Announcements The SIFT demo toolkit is available from http://www.evolution.com/product/oem/d

More information

Analysis of Binary Images

Analysis of Binary Images Analysis of Binary Images Introduction to Computer Vision CSE 52 Lecture 7 CSE52, Spr 07 The appearance of colors Color appearance is strongly affected by (at least): Spectrum of lighting striking the

More information

The strong chromatic number of a graph

The strong chromatic number of a graph The strong chromatic number of a graph Noga Alon Abstract It is shown that there is an absolute constant c with the following property: For any two graphs G 1 = (V, E 1 ) and G 2 = (V, E 2 ) on the same

More information

Minimum Cost Edge Disjoint Paths

Minimum Cost Edge Disjoint Paths Minimum Cost Edge Disjoint Paths Theodor Mader 15.4.2008 1 Introduction Finding paths in networks and graphs constitutes an area of theoretical computer science which has been highly researched during

More information

Chapter 5 Graph Algorithms Algorithm Theory WS 2012/13 Fabian Kuhn

Chapter 5 Graph Algorithms Algorithm Theory WS 2012/13 Fabian Kuhn Chapter 5 Graph Algorithms Algorithm Theory WS 2012/13 Fabian Kuhn Graphs Extremely important concept in computer science Graph, : node (or vertex) set : edge set Simple graph: no self loops, no multiple

More information

by conservation of flow, hence the cancelation. Similarly, we have

by conservation of flow, hence the cancelation. Similarly, we have Chapter 13: Network Flows and Applications Network: directed graph with source S and target T. Non-negative edge weights represent capacities. Assume no edges into S or out of T. (If necessary, we can

More information

LP-Modelling. dr.ir. C.A.J. Hurkens Technische Universiteit Eindhoven. January 30, 2008

LP-Modelling. dr.ir. C.A.J. Hurkens Technische Universiteit Eindhoven. January 30, 2008 LP-Modelling dr.ir. C.A.J. Hurkens Technische Universiteit Eindhoven January 30, 2008 1 Linear and Integer Programming After a brief check with the backgrounds of the participants it seems that the following

More information

EECS490: Digital Image Processing. Lecture #17

EECS490: Digital Image Processing. Lecture #17 Lecture #17 Morphology & set operations on images Structuring elements Erosion and dilation Opening and closing Morphological image processing, boundary extraction, region filling Connectivity: convex

More information

Advanced Operations Research Techniques IE316. Quiz 1 Review. Dr. Ted Ralphs

Advanced Operations Research Techniques IE316. Quiz 1 Review. Dr. Ted Ralphs Advanced Operations Research Techniques IE316 Quiz 1 Review Dr. Ted Ralphs IE316 Quiz 1 Review 1 Reading for The Quiz Material covered in detail in lecture. 1.1, 1.4, 2.1-2.6, 3.1-3.3, 3.5 Background material

More information

Morphological Image Processing

Morphological Image Processing Morphological Image Processing Binary dilation and erosion" Set-theoretic interpretation" Opening, closing, morphological edge detectors" Hit-miss filter" Morphological filters for gray-level images" Cascading

More information

Robot vision review. Martin Jagersand

Robot vision review. Martin Jagersand Robot vision review Martin Jagersand What is Computer Vision? Computer Graphics Three Related fields Image Processing: Changes 2D images into other 2D images Computer Graphics: Takes 3D models, renders

More information

Filters. Advanced and Special Topics: Filters. Filters

Filters. Advanced and Special Topics: Filters. Filters Filters Advanced and Special Topics: Filters Dr. Edmund Lam Department of Electrical and Electronic Engineering The University of Hong Kong ELEC4245: Digital Image Processing (Second Semester, 2016 17)

More information

Vertex-Colouring Edge-Weightings

Vertex-Colouring Edge-Weightings Vertex-Colouring Edge-Weightings L. Addario-Berry a, K. Dalal a, C. McDiarmid b, B. A. Reed a and A. Thomason c a School of Computer Science, McGill University, University St. Montreal, QC, H3A A7, Canada

More information

Bilinear Programming

Bilinear Programming Bilinear Programming Artyom G. Nahapetyan Center for Applied Optimization Industrial and Systems Engineering Department University of Florida Gainesville, Florida 32611-6595 Email address: artyom@ufl.edu

More information

Jessica Su (some parts copied from CLRS / last quarter s notes)

Jessica Su (some parts copied from CLRS / last quarter s notes) 1 Max flow Consider a directed graph G with positive edge weights c that define the capacity of each edge. We can identify two special nodes in G: the source node s and the sink node t. We want to find

More information

Interpolation is a basic tool used extensively in tasks such as zooming, shrinking, rotating, and geometric corrections.

Interpolation is a basic tool used extensively in tasks such as zooming, shrinking, rotating, and geometric corrections. Image Interpolation 48 Interpolation is a basic tool used extensively in tasks such as zooming, shrinking, rotating, and geometric corrections. Fundamentally, interpolation is the process of using known

More information

x Boundary Intercepts Test (0,0) Conclusion 2x+3y=12 (0,4), (6,0) 0>12 False 2x-y=2 (0,-2), (1,0) 0<2 True

x Boundary Intercepts Test (0,0) Conclusion 2x+3y=12 (0,4), (6,0) 0>12 False 2x-y=2 (0,-2), (1,0) 0<2 True MATH 34 (Finite Mathematics or Business Math I) Lecture Notes MATH 34 Module 3 Notes: SYSTEMS OF INEQUALITIES & LINEAR PROGRAMMING 3. GRAPHING SYSTEMS OF INEQUALITIES Simple Systems of Linear Inequalities

More information

CS261: Problem Set #2

CS261: Problem Set #2 CS261: Problem Set #2 Due by 11:59 PM on Tuesday, February 9, 2016 Instructions: (1) Form a group of 1-3 students. You should turn in only one write-up for your entire group. (2) Submission instructions:

More information

Solving problems on graph algorithms

Solving problems on graph algorithms Solving problems on graph algorithms Workshop Organized by: ACM Unit, Indian Statistical Institute, Kolkata. Tutorial-3 Date: 06.07.2017 Let G = (V, E) be an undirected graph. For a vertex v V, G {v} is

More information

Basic relations between pixels (Chapter 2)

Basic relations between pixels (Chapter 2) Basic relations between pixels (Chapter 2) Lecture 3 Basic Relationships Between Pixels Definitions: f(x,y): digital image Pixels: q, p (p,q f) A subset of pixels of f(x,y): S A typology of relations:

More information

CS446: Machine Learning Fall Problem Set 4. Handed Out: October 17, 2013 Due: October 31 th, w T x i w

CS446: Machine Learning Fall Problem Set 4. Handed Out: October 17, 2013 Due: October 31 th, w T x i w CS446: Machine Learning Fall 2013 Problem Set 4 Handed Out: October 17, 2013 Due: October 31 th, 2013 Feel free to talk to other members of the class in doing the homework. I am more concerned that you

More information

CIS UDEL Working Notes on ImageCLEF 2015: Compound figure detection task

CIS UDEL Working Notes on ImageCLEF 2015: Compound figure detection task CIS UDEL Working Notes on ImageCLEF 2015: Compound figure detection task Xiaolong Wang, Xiangying Jiang, Abhishek Kolagunda, Hagit Shatkay and Chandra Kambhamettu Department of Computer and Information

More information

EE795: Computer Vision and Intelligent Systems

EE795: Computer Vision and Intelligent Systems EE795: Computer Vision and Intelligent Systems Spring 2012 TTh 17:30-18:45 WRI C225 Lecture 04 130131 http://www.ee.unlv.edu/~b1morris/ecg795/ 2 Outline Review Histogram Equalization Image Filtering Linear

More information

Notes on Minimum Cuts and Modular Functions

Notes on Minimum Cuts and Modular Functions Notes on Minimum Cuts and Modular Functions 1 Introduction The following are my notes on Cunningham s paper [1]. Given a submodular function f and a set S, submodular minimisation is the problem of finding

More information

Interactive segmentation, Combinatorial optimization. Filip Malmberg

Interactive segmentation, Combinatorial optimization. Filip Malmberg Interactive segmentation, Combinatorial optimization Filip Malmberg But first... Implementing graph-based algorithms Even if we have formulated an algorithm on a general graphs, we do not neccesarily have

More information

Definition For vertices u, v V (G), the distance from u to v, denoted d(u, v), in G is the length of a shortest u, v-path. 1

Definition For vertices u, v V (G), the distance from u to v, denoted d(u, v), in G is the length of a shortest u, v-path. 1 Graph fundamentals Bipartite graph characterization Lemma. If a graph contains an odd closed walk, then it contains an odd cycle. Proof strategy: Consider a shortest closed odd walk W. If W is not a cycle,

More information

Supervised texture detection in images

Supervised texture detection in images Supervised texture detection in images Branislav Mičušík and Allan Hanbury Pattern Recognition and Image Processing Group, Institute of Computer Aided Automation, Vienna University of Technology Favoritenstraße

More information

Fuzzy Soft Mathematical Morphology

Fuzzy Soft Mathematical Morphology Fuzzy Soft Mathematical Morphology. Gasteratos, I. ndreadis and Ph. Tsalides Laboratory of Electronics Section of Electronics and Information Systems Technology Department of Electrical and Computer Engineering

More information

CSCI-GA Scripting Languages

CSCI-GA Scripting Languages CSCI-GA.3033.003 Scripting Languages 12/02/2013 OCaml 1 Acknowledgement The material on these slides is based on notes provided by Dexter Kozen. 2 About OCaml A functional programming language All computation

More information

Connectivity Preserving Digitization of Blurred Binary Images in 2D and 3D

Connectivity Preserving Digitization of Blurred Binary Images in 2D and 3D Connectivity Preserving Digitization of Blurred Binary Images in 2D and 3D Peer Stelldinger a Ullrich Köthe a a Cognitive Systems Group, University of Hamburg, Vogt-Köln-Str. 30, D-22527 Hamburg, Germany

More information

Image Analysis - Lecture 5

Image Analysis - Lecture 5 Texture Segmentation Clustering Review Image Analysis - Lecture 5 Texture and Segmentation Magnus Oskarsson Lecture 5 Texture Segmentation Clustering Review Contents Texture Textons Filter Banks Gabor

More information

MITOCW watch?v=4dj1oguwtem

MITOCW watch?v=4dj1oguwtem MITOCW watch?v=4dj1oguwtem PROFESSOR: So it's time to examine uncountable sets. And that's what we're going to do in this segment. So Cantor's question was, are all sets the same size? And he gives a definitive

More information

Introduction to grayscale image processing by mathematical morphology

Introduction to grayscale image processing by mathematical morphology Introduction to grayscale image processing by mathematical morphology Jean Cousty MorphoGraph and Imagery 2011 J. Cousty : Morpho, graphes et imagerie 3D 1/15 Outline of the lecture 1 Grayscale images

More information

Primal Dual Schema Approach to the Labeling Problem with Applications to TSP

Primal Dual Schema Approach to the Labeling Problem with Applications to TSP 1 Primal Dual Schema Approach to the Labeling Problem with Applications to TSP Colin Brown, Simon Fraser University Instructor: Ramesh Krishnamurti The Metric Labeling Problem has many applications, especially

More information

International Journal of Advance Engineering and Research Development. Applications of Set Theory in Digital Image Processing

International Journal of Advance Engineering and Research Development. Applications of Set Theory in Digital Image Processing Scientific Journal of Impact Factor (SJIF): 4.72 International Journal of Advance Engineering and Research Development Volume 4, Issue 11, November -2017 Applications of Set Theory in Digital Image Processing

More information

Biomedical Image Analysis. Point, Edge and Line Detection

Biomedical Image Analysis. Point, Edge and Line Detection Biomedical Image Analysis Point, Edge and Line Detection Contents: Point and line detection Advanced edge detection: Canny Local/regional edge processing Global processing: Hough transform BMIA 15 V. Roth

More information

CSE 417 Network Flows (pt 3) Modeling with Min Cuts

CSE 417 Network Flows (pt 3) Modeling with Min Cuts CSE 417 Network Flows (pt 3) Modeling with Min Cuts Reminders > HW6 is due on Friday start early bug fixed on line 33 of OptimalLineup.java: > change true to false Review of last two lectures > Defined

More information

J Linear Programming Algorithms

J Linear Programming Algorithms Simplicibus itaque verbis gaudet Mathematica Veritas, cum etiam per se simplex sit Veritatis oratio. [And thus Mathematical Truth prefers simple words, because the language of Truth is itself simple.]

More information

arxiv: v2 [cs.dm] 28 Dec 2010

arxiv: v2 [cs.dm] 28 Dec 2010 Multiple-source multiple-sink maximum flow in planar graphs Yahav Nussbaum arxiv:1012.4767v2 [cs.dm] 28 Dec 2010 Abstract In this paper we show an O(n 3/2 log 2 n) time algorithm for finding a maximum

More information

EXAM SOLUTIONS. Image Processing and Computer Vision Course 2D1421 Monday, 13 th of March 2006,

EXAM SOLUTIONS. Image Processing and Computer Vision Course 2D1421 Monday, 13 th of March 2006, School of Computer Science and Communication, KTH Danica Kragic EXAM SOLUTIONS Image Processing and Computer Vision Course 2D1421 Monday, 13 th of March 2006, 14.00 19.00 Grade table 0-25 U 26-35 3 36-45

More information

VC 16/17 TP5 Single Pixel Manipulation

VC 16/17 TP5 Single Pixel Manipulation VC 16/17 TP5 Single Pixel Manipulation Mestrado em Ciência de Computadores Mestrado Integrado em Engenharia de Redes e Sistemas Informáticos Hélder Filipe Pinto de Oliveira Outline Dynamic Range Manipulation

More information

Topological structure of images

Topological structure of images Topological structure of images Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Methods for Image Processing academic year 27 28 Use of simple relationships between pixels The

More information

Homework 4 Computer Vision CS 4731, Fall 2011 Due Date: Nov. 15, 2011 Total Points: 40

Homework 4 Computer Vision CS 4731, Fall 2011 Due Date: Nov. 15, 2011 Total Points: 40 Homework 4 Computer Vision CS 4731, Fall 2011 Due Date: Nov. 15, 2011 Total Points: 40 Note 1: Both the analytical problems and the programming assignments are due at the beginning of class on Nov 15,

More information

Modular Representations of Graphs

Modular Representations of Graphs Modular Representations of Graphs Crystal Altamirano, Stephanie Angus, Lauren Brown, Joseph Crawford, and Laura Gioco July 2011 Abstract A graph G has a representation modulo r if there exists an injective

More information

Network Flow I. Lecture Overview The Network Flow Problem

Network Flow I. Lecture Overview The Network Flow Problem Lecture Network Flow I. Overview In these next two lectures we are going to talk about an important algorithmic problem called the Network Flow Problem. Network flow is important because it can be used

More information

Edges and Binary Images

Edges and Binary Images CS 699: Intro to Computer Vision Edges and Binary Images Prof. Adriana Kovashka University of Pittsburgh September 5, 205 Plan for today Edge detection Binary image analysis Homework Due on 9/22, :59pm

More information

9.1 Cook-Levin Theorem

9.1 Cook-Levin Theorem CS787: Advanced Algorithms Scribe: Shijin Kong and David Malec Lecturer: Shuchi Chawla Topic: NP-Completeness, Approximation Algorithms Date: 10/1/2007 As we ve already seen in the preceding lecture, two

More information

This is already grossly inconvenient in present formalisms. Why do we want to make this convenient? GENERAL GOALS

This is already grossly inconvenient in present formalisms. Why do we want to make this convenient? GENERAL GOALS 1 THE FORMALIZATION OF MATHEMATICS by Harvey M. Friedman Ohio State University Department of Mathematics friedman@math.ohio-state.edu www.math.ohio-state.edu/~friedman/ May 21, 1997 Can mathematics be

More information

An exact algorithm for max-cut in sparse graphs

An exact algorithm for max-cut in sparse graphs An exact algorithm for max-cut in sparse graphs F. Della Croce a M. J. Kaminski b, V. Th. Paschos c a D.A.I., Politecnico di Torino, Italy b RUTCOR, Rutgers University c LAMSADE, CNRS UMR 7024 and Université

More information

CS246: Mining Massive Datasets Jure Leskovec, Stanford University

CS246: Mining Massive Datasets Jure Leskovec, Stanford University CS46: Mining Massive Datasets Jure Leskovec, Stanford University http://cs46.stanford.edu /7/ Jure Leskovec, Stanford C46: Mining Massive Datasets Many real-world problems Web Search and Text Mining Billions

More information

Texture. Texture is a description of the spatial arrangement of color or intensities in an image or a selected region of an image.

Texture. Texture is a description of the spatial arrangement of color or intensities in an image or a selected region of an image. Texture Texture is a description of the spatial arrangement of color or intensities in an image or a selected region of an image. Structural approach: a set of texels in some regular or repeated pattern

More information

Digital Image Processing COSC 6380/4393

Digital Image Processing COSC 6380/4393 Digital Image Processing COSC 6380/4393 Lecture 6 Sept 6 th, 2017 Pranav Mantini Slides from Dr. Shishir K Shah and Frank (Qingzhong) Liu Today Review Logical Operations on Binary Images Blob Coloring

More information