Project 1: Focus on Miniatures

Overview

The goal of this first project is to create fake miniatures by simulating the effect of selective focus cameras, also known as Tilt Shift. Here we select a focus plane by masking a region of interests and applying a blurring filter to the rest of the image. Effectively this narrows the perceived depth of field in the scene and creates the illusion that the lens was really close to the subject. This makes a photograph of objects or a landscape look almost like minitaure "toys".

Results

For the implementation, I first select points to be a part of our focus line. For creating the fake depth of field I use the same Guassian blurring from past projects with the further away parts having more blur. Lastly, I did color adjustment by enhancing the contrast and saturation until it looked good to me.

IMAGE 1: BOATS

Source: Project Website

Original Image

Blurred Miniature

Color Adjustment

IMAGE 2: TRAIN

Source: dontgetserious.com (Google Images)

Original Image

Blurred Miniature

Color Adjustment

IMAGE 3: FLAMINGOS

Source: kpbs.org (Google Images)

Original Image

Blurred Miniature

Color Adjustment

IMAGE 4: LIBRARY

Source: My Picture

Original Image

Blurred Miniature

Color Adjustment

IMAGE 5: PLAZA

Source: My Picture

Original Image

Blurred Miniature

Color Adjustment

IMAGE 6: CAR IN PARKING LOT

Source: My Picture

Original Image

Blurred Miniature

Color Adjustment

IMAGE 7: TABLE AND CHAIRS

Source: My Picture

Original Image

Blurred Miniature

Color Adjustment

Project 2: Seam Carving

Overview

The goal of this project is to implement the basic algorithm that can shrink an image (either horizontally or vertically) to a given dimension.

What I learned

The most interesting thing I learned is how to actually apply dynamic programming to image alteration, which is something I didn't really think about before. We use DP to find the least-important seams.

Results

The implementation is based on removing out seams with the lowest importance. The Dynamic Programming relationship we use to remove the lowest-importance seams is:
M[i][j] = importance(gradient, i, j) + min(M[i-1][j], M[i][j-1], M[i+1][j-1])

IMAGE 1: CABIN

Source: Project Website

Original Image

Horizontal Carving

Vertical Carving

IMAGE 2: SIDEWALK

Source: Project Website

Original Image

Horizontal Carving

Vertical Carving

Looks similar to the results from the project website.

IMAGE 3: MOUNTAINS

Source: holidayiq.com (Google Images)

Original Image

Horizontal Carving

Vertical Carving

IMAGE 4: BEACH

Source: blog.oup.com (Google Images)

Original Image

Horizontal Carving

Vertical Carving

IMAGE 5: CABIN IN SNOW

Source: Pixdaus (Google Images)

Original Image

Horizontal Carving

Vertical Carving

IMAGE 6: FLORIDA UNIVERSAL STUDIOS

Source: My Picture

Original Image

Horizontal Carving

Vertical Carving

IMAGE 7: SAFARI

Source: images.kuoni.co.uk (Google Images)

Original Image

Horizontal Carving

Vertical Carving

IMAGE 8 (FAILED): KIM AND BEYONCE

Source: tmz.com (Google Images)

Original Image

Horizontal Carving

Vertical Carving

In the horizontal carving, Kim's face becomes distorted. Here, the lowest importance seams were not detected the best.

IMAGE 9 (FAILED): BASKETBALL

Source: news.northwestern.edu (Google Images)

Original Image

Horizontal Carving

Vertical Carving

In the vertical carving, we see that the basketball becomes distorted because the circle outline of the basketball is affected.