Ryan Thompson (rgt)
15-463 project 2
Image Resizing by Seam Carving
This project involved resizing images by implementing an algorithm proposed by Shai Avidan and Ariel Shamir in their SIGGRAPH paper,
Seam Carving for Content-Aware Image Resizing.
The algorithm, which is quite simple, was implemented in MATLAB. It is as follows:
1. Apply an energy function to the image. This can be one of many functions, many of which are mentioned in Shamir and Avidan's paper.
The one that I chose to use is the e1 function: e1(I) = |(d/dx)I| + |(d/dy)I|. An example of an energy image is shown below.
2. Next, Calculate the seam of lowest energy using dynamic programming.
This will be an 8-connected path from top to bottom (or left to right in the case of vertical resizing) that minimizes energy. Example below.
3. Remove this seam (both from the energy image and the working image).
4. Repeat 2,3 until desired dimension is reached.