CS129 / Project 3 / Seam Carving

Seam carving done with "forward energy"

Seam carving resizes images smartly to minimize artifacts. Through dynamic programming, we compute a path of pixels that is deemed to have the least importance and remove it from the image. This "seam" is connected from top to bottom in an image with one pixel in each row. In this implementation, the importance is defined to be the L1 norm of the gradient.

An alternate criterion of choosing seams is to look for the seam whose removal inserts the least amount of energy into the picture.

Results

Results were produced using this "forward energy" approach. We see that using forward energy gives us better results than the original seam carving approach - the regular seam carving implementation gives us artifacts on the mountains below, while the forward energy implementation does not (From left to right: original image, original seam carving, forward energy).

Generally, the forward energy approach does well. However, it will distort faces such as the Mona Lisa - the algorithm failed completely on that image. Inevitably, seam carving will also distort geometric shapes, which is quite obvious when your picture is supposed to be of a spherical Earth.

Results in a table