CS 194-26 Project 3: Fun with Frequencies and Gradients!

Emily Chang cs194-26-aeu


Part 1.1: Warmup

We take in a blurry image and sharpen it by applying a Gaussian filter to first blur the image. Then we take the difference between original image and the blurred image. To get a sharpened image, we add this difference to our original image.

original puppy

sharpened puppy

Part 1.2: Hybrid Images

In this part, we construct hybrid images by running a low pass filter on one image and a high pass filter on the other image. We then combine the two, creating an effect such that from afar, we will see the low pass filter, and close up, we will see more of the high pass filter.

Creating a hybrid from these two images, we have:

more Nutmeg

more Derek

Creating a hybrid from these two images, we have:

more Obama

more Oprah

Creating a hybrid from these two images, we have:

more golden retriever

more husky

Here is the fourier transform process:

FFT golden retriever

FFT husky

FFT golden retriever under Gaussian filter

FFT husky under Gaussian filter

FFT gusky

Part 1.3: Gaussian and Laplacian Stacks

To create a Gaussian stack, we continuously apply the Gaussian filter to the image, each time increasing our sigma value. I used sigma values from 1 through 15 with step size 3. To build the Laplacian stack, we take the difference from every two levels of the Gaussian stack.



Part 1.4: Multiresolution Blending

In multiresolution blending, we create Gaussian and Laplacian stacks for the two images we want to blend together. Then, we combine the images in the Laplacian stack and multiply it by a mask which we apply a Gaussian filter on. This allows us to create a smoother transition between the two images we are interested in blending together.

apple orange orapple

earth jupiter eupiter

girl boy mask of girl's eye a new EYEbrow



Part 2: Gradient Domain Fushion

Part 2.1 Toy Problem

Here we aimed to reconstruct an image with only its gradients. We achieved this by taking the gradient on the x and y axis for each pixel and using least squares to reconstruct a vector containing the pixels of the reconstucted image. Here are our results:

Original Toy Story

Reconstructed Toy Story



Part 2.2: Poisson Blending

In this part, we applied poisson blending to allow us to essentially insert an object from one image to another image, and make it appear as though it were naturally inserted into the scene. Poisson blending allows us to achieve this because we use it to minimize the difference between pixels from our target image and our source image. As a result, we are able to implement a smooth transition between the source image and the target image. Here, we show our target, source, inserting the source into the target, and application of poisson blending. More mathematically, our goal is to minimize:

Hollywood

Hot air balloon

Paste in balloon

Poisson blending

Penguin

Hikers

Paste in penguin

Hiking with penguin

Nice Island

Hawaii

Paste in island

Extra island!