UC Berkeley CS 180 | Fall 2023

These are my projects from CS 180, a class taught by Alexei (Alyosha) Efros and Angjoo Kanazawa. The class focuses on computing with visual data, which includes the image processing, computer vision, computational photography, and the use of convolutional neural networks.

Final Project

My final project was comprised of 3 different projects demonstrating different techniques for image manipulation.
1. Gradient Domain Fusion
Project Spec | My Project Website
This project implemented a technique used for blending, tone-mapping, and non-photorealistic rendering, which we used to seamlessly blend objects into target images.
2. Image Quilting
Project Spec | My Project Website
This project involves creating a larger texture image from a small sample by sampling patches and ensuring similarities in overlapping regions.
3. Lightfield Camera
Project Spec | My Project Website
This project mimics depth refocusing and aperature adjustment by capturing an array of images over a plane orthogonal to the object and using simple techniques such as shifting and averaging.

Project 1 📸

Colorizing the Prokudin-Gorskii photo collection: Project Spec | My Project Website
This project focused on image processing to extract color channels and align them to form a single RGB color image.

Project 2 🍎

Fun with Filters and Frequencies: Project Spec | My Project Website
This project builds off of project 1 by introducing gaussians, 2d convolutions, filtering, and multiresolution blending.

Project 3 🎭

Face Morphing: Project Spec | My Project Website
The goal of this project was to produce a morphing sequence of 2 faces, which can be done by defining corresponding points, computing a midway face through triangularization and averaging, and changing alpha values.

Project 4 🌅

Image Warping and Mosaicing: Project Spec | My Project Website
This project focused on image mosaicing by taking two or more photographs and creating an image mosaic by registering, projective warping, resampling, and compositing them. This includes computing homographies and using them to warp images.

Project 5 🎞️

Neural Radiance Field! (NeRFs!): Project Spec | My Project Website
The goal of this assignment is to learn how to implement both 2D neural fields and 3D Neural Radiance Fields.