/home/adeel

My course portfolio for Computational Photography

This semester I took Georgia Tech’s Computational Photography course. It was a very hands-on course, mostly comprising of assignments and projects. This post includes the results for all its assignments and projects.

1. Pyramid blending

The goal of this assignment was to combine two separate images into a seamlessly blended image, using a mask. The input took a left image, a right image, and a mask, which was a binary image used to overlap the two inputs.

Pyramid blending

2. Panoramas

For this assignment we wrote code to align & stitch together a series of images into a panorama. We followed the text from Computer Vision: Algorithms and Applications book. The assignment followed homography techniques to create the output picture.

panorama_1 panorama_2 panorama_3

After stitching these all up, I got this result.

Panorama

PS. I took these pictures from the Salève mountain in France.

3. HDR

This one required us to produce HDR images, using input images captured at various exposure levels.

bamboo_all

(Input images)

For the output we produced a basic HDR image and it’s best version, using histogram equalization.

basic_hdr best_hdr

Finally, we also created a color-enchanged version using Gamma correction.

HDR

4. Video Textures

In this assignment we infinitely looped pieces of video. The output was a GIF with very smooth transitions.

texture_frames

This was the final result. (Not totally smooth, but almost.)

salt_texture

5. Image Inpainting

This was our first project which required us to implement an image inpainting technique to remove objects from pictures. This is similar to the Magic Eraser tool available on the Pixel 6. We replicated results from this research paper.

inpaint_input_2 inpaint_result_2

inpaint_input_1 inpaint_result_1

6. Seam Carving

The final project was based on seam carving to shrink or expand images. We implemented the backward and forward energy methods from these two research papers:

beach beach_output

bench bench_output

The red lines in this image show where the pixels were removed in the output image. These are points where the removal would have the least effect in the output image.

bench_output_red