Source Code

Most of the code available here is to be used simply as an example or as the starting point of a new project. If you happen to use it for a course project, make sure you clearly explain how you obtained the code and how you contributed to it.

Short Code

Efficient code for computing the Topological Signature Vector (TSV)
of a rooted DAG

  • compute_tsv.cpp
  • this is a piece of code from a larger project and won't compile on its own. You can base your own code on it.
  • the Matrix type and the SVD function are in the Newmat library.

Code Form Past Projects

2000 - 2003

Shape Indexing and Matching Using Shock Graphs

Abstract: A shock graph is a shape abstraction that decomposes a shape into hierarchically organized primitive parts. We provide a novel shock graph computation algorithm that yields stable graphs under noise and shape deformation from skeletons computed using the code of Dimitrov and Siddiqi. In addition, we extend the indexing and matching framework for hierarchical structures introduced by Shokoufandeh et al., and apply it to the problem of matching shock graphs representing views of 3-D objects. The indexing performance is improved by a vote accumulation algorithm that efficiently solves a multiple one-to-one assignment of votes. In turn, the matching algorithm is extended by ensuring the satisfaction of all the hierarchical constraints encoded in the graphs.

Supervisor: Sven Dickinson
In collaboration with: Ali Shokoufandeh, Pavel Dimitrov, Yakov Keselman, and Kaleem Siddiqi.

Is the code available? yes

1997 -1999

Interactive Text Book (ITB)

Abstract: In this project we empirically investigate models of interaction between the readers of electronic books and a digital library. We propose a number of features that facilitate the navigation through the library and evaluate them within a framework composed of three applications: an ITB Builder, an ITB Library, and an ITB Reader. This framework allows users to interact with digital libraries through TCP/IP networks such as the Internet.

Director: Alejandro Vaisman
In collaboration with: Pablo Tome and Enrique Molinari

What's in the code? some of the code may still be interesting. Other pieces of it are not. For example, the HTML viewer was created to allow the user to highlight text, but nowadays a standard HTML viewer object does that pretty well.

itb.jpg (17623 bytes)

Toy Compiler

Description: The compiler has two components: a visual interface application and a command-line lexer, parser and a code builder application. The proposed grammar allows signed integer variables, string and numeric constants, while loops, if-else conditions with compound boolean expressions, and comments. In addition, simple code optimization is made as a final stage. It was developed using Lex & Yacc for Windows.

In collaboration with: Analía Jähnig and Yanina Manassa

What's in the code? it could useful as the starting code of a fancier compiler.

compiler.jpg (15569 bytes)
1996 - 1997

2D Shape Recognizer

Abstract: The goal of this project is to identify simple 2D figures from bitmaps with Gaussian and non-Gaussian noise. We propose to solve in four stages: edge detection, edge vectorization, discriminant-feature extraction from Bezier curves, and feature matching. In order to test efficiency, two edge detector algorithms were used: Canny and Shen-Castan. The extraction of discriminant features is done through the vectorization of the recognized edges with Bezier curves. The feature identification and matching stages are left as future work.

In collaboration with: Guillermo Baruh

What's in the code? the Bezier curve editor works well. The implementation of the edge detectors is also useful. The model shape database has a handy interface. The rest of the project's goals still need a lot of work.

sraf.jpg (16417 bytes)