CS180 Project 1

Overview

The goal of this assignment is to take the digitized Prokudin-Gorskii glass plate images and, using image processing techniques, automatically produce a color image with as few visual artifacts as possible. In order to do this, you will need to extract the three color channel images, place them on top of each other, and align them so that they form a single RGB color image.

Single-Scale Approach (Brute Force)

In this approach, I will use the brute force method to align the three images and use the sum of squared differences (SSD) to find the best alignment. Also, I will search the range from -15 to 15 pixels in both x and y directions to find the best displacement (shifts 15 pixels in all directions). Then, using the best alignment align the images and create the final color image. Another way to find the best displacement is to use the normalized cross-correlation (NCC) method. But it is computationally expensive and takes more time than SSD. Therefore, I mainly used the SSD method in this project.

SSD Method
NCC Method

Multi-Scale Approach (Image Pyramids)

The brute-force way to align the images is computationally expensive for large size files. It will probably take a few minutes to process the image, which is way slower compared with small size images. To reduce the time complexity, I will use the image pyramids method. Basically, I just decrease the size of the image by half and repeat the process until the image size is small enough to use the brute-force method. Here, I chose to decrease the size of the image by half 4 times. So, the final image size will be 1/16 of the original image size. Then, I will use the brute-force method to align the images and create the final color image.

Final Results

green: (5, 2) Red: (12, 3)

Unaligned Image Aligned Image

green: (25, 4) red: (58, -4)

Aligned Image Aligned Image

green: (49, 24) red: (107, 40)

Aligned Image Aligned Image

green: (60, 18) red: (123, 14)

Aligned Image Aligned Image

icon. green: (41, 17) red: (90, 23)

Aligned Image Aligned Image

green: (56, 9) red: (119, 13)

Aligned Image Aligned Image

green: (80, 10) red: (177, 13)

Aligned Image Aligned Image

green: (-3, 2) red: (3, 2)

Aligned Image Aligned Image

(51, 26) red: (108, 36)

Aligned Image Aligned Image

green: (33, -11) red: (140, -27)

Aligned Image Aligned Image

green: (78, 29) red: (176, 37)

Aligned Image Aligned Image

green: (53, 13) red: (111, 9)

Aligned Image Aligned Image

green: (3, 3) red: (7, 3)

Aligned Image Aligned Image

green: (42, 8) red: (86, 33)

Aligned Image Aligned Image

green: (18, 14) red: (81, 38)

Aligned Image Aligned Image

green: (32, 6) red: (79, 8)

Aligned Image Aligned Image

green: (41, -17) red: (92, -29)

Aligned Image Aligned Image

green: (15, -6) red: (82, -16)

Aligned Image Aligned Image