CSC320 Visual Computing — Project Series

Course: CSC320H1 — Introduction to Visual Computing Institution: University of Toronto Term: Fall 2024

A series of four implementation-heavy projects covering core image-processing and computational-photography techniques.

Project 1 — Homographies

Implemented a document-scanner pipeline using homography transformations to unwarp images of planar surfaces. Derived the homography matrix from point correspondences and used backward mapping with bilinear resampling to produce artifact-free results. Tech: Python, NumPy.

Project 2 — Beier-Neely Image Morphing

Built a field-warping image morpher with bilinear interpolation between source and destination control lines. Optimized the inner loop through vectorized NumPy operations, improving runtime by ~75% over the scalar baseline. Tech: Python, OpenCV.

Project 3 — Exemplar-Based Image Inpainting

Implemented Criminisi’s algorithm to reconstruct missing regions of images via patch prioritization driven by confidence and edge-strength terms. Analyzed edge cases (textured vs. uniform regions) and documented artifacts in a technical report. Tech: Python, NumPy.

Project 4 — PatchMatch Algorithm

Implemented the randomized PatchMatch correspondence algorithm (the technique behind Adobe’s Content-Aware Fill). Achieved near-real-time performance by eliminating explicit Python loops in favor of vectorized NumPy operations over the nearest-neighbor field. Tech: Python, NumPy.