Part 1.1: Image Sharpening

The easiest way to sharpen an image is to extract the high frequencies by applying a Gaussian filter, then subtracting this from the original image: HF = Image - GaussianFilter(Image). Then, add the high frequencies back to the image, with varying degrees: Img' = Img + α*HF.

Below, you can see the original image, as well as how the alpha value changes how much the image is sharpened.

Original Image

Sharpened, α=0.5

Sharpened, α=1

Part 1.2: Hybrid Images

Hybrid Images are images in which you see one image when looking at the image at a close distance, and a different image when staring from far away. This image is produced when you combine the high frequencies of one image with the low frequencies of another. Since we focus on the high frequencies when an image is close to us, and we focus on the low frequencies when an image is far away, we are able to see two different images at two distances from the image

Anant Sahai

Dan Garcia

Hybrid Image (greyscaled)

Sahai FFT

Sahai, Blurred, FFT. High frequencies are reduced

Garcia FFT (greyscaled)

Garcia, Impulse, FFT. High frequencies dominate

Hybrid Image FFT

Other Results!

Rhino

Cheetah

Hybrid Image (greyscaled)

Rhino

Cheetah

Hybrid Image (greyscaled) Image manually rotated and cropped

Failures!

Sahai+Garcia Fail–needed to tweak the sigma values

Rhino+Cheetah Fail–needed to tweak the sigma values

Colors!

Gahai

Rheta

Garcat (Rotated and Cropped Manually)

Part 1.3: Lapclacian Stacks

Gahai Stacks

Mona Lisa Stacks

Dali's Lincoln Stacks

Part 1.4: Multiresolution Blending

One way to blend 2 images is to blend at each frequency level

The Orange + Apple (Naive)

The Orapple!

Jupiter + Neptune (Naive)

New planet Jupitune!

Laplacian Levels of Combined Image

Level 0

Level 1

Level 2

Level 3

Level 4

The Hand + Eye (Naive Blending)

A scary hand-eye!

Part 2: Gradient Domain Fusions

The above examples are using frequencies to blend images–the best example of fusing two images together try to blend the high frequencies together, and add in the lower frequencies later. Still–this doesn't solve many problems.

In gradient domain fusion, we try to change the pixels of a inserted image in order to make the new gradients both similar to the old image, and as similar as possible to the background. Gradient Domain Fusion uses least squares to solve this problem–the constraints are that the gradients that were within the inserted image i we try not to change, and the gradient along the border we try not the change as well.

For Poisson Blending, we try to minimize:

((v(i) - v(j)) - (s(i) - (s(j)))^2, for i and j both within the inserted image, next to each other.

((v(i) - t(j)) - (s(i) - (s(j)))^2, for i within the image and j in the background (near pixel i)

Part 2.1: The Toy Problem

Before we start on gradient fusions, we should get used to working in the gradient domain! We'll see how accurate our process is by using gradients and least squares to reconstruct an image.

As you can see, the reconstructed image is fairly similar to the original! We do see some artifacts in the reconstructed image, but this is expected.

Original Image

Reconstructed Iamge

Part 2.2: Poisson Blending

We're now ready to use gradients to blend!

City

City, Mask

Eagle

Eagle, Mask

Eagle + City (Naive)

Eagle flying over a city!

Skiing + Polar Bear (Naive)

Skiing with a Polar Bear

Skiing + Polar Bear, using Multiresolution Blending

The Multiresolution Blending option looks very weird. It's not able to change the pixel values, so the pixels around the polar bear are blurred out. Unless the background is very similar, multiresolution blending will be not as good. I think that Poisson blending is better if you have a small mask, and you're trying to insert a object into another image seamlessly. Multiresolution Blending is better if you're okay with fuzziness, and if you're given an expectation that the image isn't real.

Moon

Eiffel Tower

Eiffel with a detailed moon!

Failure

Cheetah + Rhino (Naive)

Cheetah weirdly part of a rhino scene

This likely didn't work because of the huge difference in the background of the two images–it resolved the tan desert + tan cheetah by turning the whole thing green, since the graident was low at the edge of the cheetah. The backgrounds need to be somewhat similar in order for colors to stay the same.