Computer Vision and Graphics

## Augmented Video

This presentation summarizes a system for inserting virtual objects into uncalibrated video sequences. The position and pose of the camera, relative to a set of landmarks, is estimated automatically for each frame in the sequence.

Downloads: presentation, video1, video2, video3, video4

## Exemplar-based Image Inpainting

This project involved removing large objects from images. From a user-specified mask, small patches were duplicated until all remaining gaps were filled. For more information, see Exemplar-based Image Inpainting by Criminisi et al.

Downloads: final presentation, source code, video1, video2

## Texture Synthesis using Image Quilting

These presentations summarize my implementation of Efros and Freeman's Image Quilting algorithm – a simple, yet effective, patch-based texture synthesis procedure. My source code is also available on Matlab Central.

Downloads: final presentation, project proposal, source code

## Bilateral Filtering and Image Abstraction

Bilateral filtering was proposed by Tomasi and Manduchi in 1998 as a non-iterative method for edge-preserving smoothing. My implementation also includes bilateral image abstraction using the method outlined by Winnemöller et al.

Computational Photography and 3D Reconstruction

## Build Your Own 3D Scanner

Gabriel Taubin and I co-presented an introductory course on 3D scanning at SIGGRAPH 2009. The complete course notes, lecture slides, demonstration videos, and source code are available on the course website.

Downloads: course website, lecture notes, source code

## Structured Light for 3D Scanning

I recently implemented a conventional structured light 3D reconstruction system using commericial DLP projectors and digital cameras. Key contributions include a complete Matlab toolbox for projector-camera calibration.

Downloads: assignment and results, presentation (pdf, ppt)

## 3D Photography using Planar Shadows

As head TA for CS 220, I created an assignment in which the students implemented Bouguet's desktop 3D scanner using only a webcam, a halogen lamp, and a stick. Send an email if you'd like a copy of my Matlab implementation.

Downloads: assignment and results, webpage, support code

## Computer Science

## Machine Learning

This section contains my collected solutions for CS 195-5: Introduction to Machine Learning. Topics discussed include Bayesian decision theory, supervised/unsupervised learning, mutual information, HMMs/MRFs, and graphical models.

## Design and Analysis of Algorithms

This section contains my collected homework solutions for CS 157: Design and Analysis of Algorithms. Topics discussed include greedy algorithms, complexity and running time, randomized algorithms, and dynamic programming.

## Electrical Engineering

## Probability and Random Processes

This section contains my homework solutions for EN 257: Applied Stochastic Processes. Topics discussed include random processes, spectral representations, Markov random fields, Kalman filtering, and detection and estimation theory.

## Matlab Decibel Meter

This tutorial presents the design of a sound level meter in Matlab. The Data Acquisition Toolbox is used to implement a real-time spectrum analyzer. The decibel meter is implemented in the frequency domain using Parseval's relation.

Downloads: tutorial, source code, original assignment

## Digital Filter Design

Originally written as a solution set for a DSP course at Brown, this tutorial discusses the design of FIR filters. Three methods are covered: (1) the window method, (2) the frequency sampling method, and (3) Parks-McClellan equiripple design.

Downloads: tutorial, original assignment

## Applied Mathematics

## Partial Differential Equations

This section contains my collected homework solutions for EN 202: Mathematical Methods in Engineering and Physics II. Topics discussed include PDEs, ODEs, the calculus of variations, and probability.

## Numerical Solution of PDEs

This section contains my homework solutions for AM 255: Numerical Solution of Partial Differential Equations I. Topics include the analysis and implementation of finite difference methods for solving time-depend initial value problems.

## Differential Geometry in Mathematica

This Mathematica notebook can be used to evaluate the properties of a parametric surface (i.e., the covariant and contravariant basis vectors, the metric and curvature tensors, and the Christoffel symbols).

Last Updated: July 20, 2009