This assignment deals with Seam Carving of images as discussed in the class and extends to Object Carving.
Seam Carving is a method of re-sizing an image which is in a sense context aware. The re-sizing is not just a scaling operation. The method is
described in the paper by Avidan and Shamir [1]. The main idea of
re-sizing is to identify a seam connecting from top to bottom (vertical seam)
and/or left to right (horizontal seam) pixels with minimum energy. The energy
can be defined in terms of gradient function in DCT domain as described in [2].
Finding seam with minimum energy can be
implemented using dynamic programming [3].
This method is based on the observation that one
can compute the minimum-energy seams (e.g. vertical) going through all
pixels in current row i by knowing the minimum-energy seams through all pixels
in the previous row i-1. One can define Cumulative Minimum Energy (CME)
of a path going through some pixel (i,j) as the energy at (i,j) plus the
minimum of the energies at vertical and diagonal adjacent pixels i.e.
at (i-1,j-1), (i-1,j), and (i-1,j+1). The cost of the
globally-minimum-energy path is then just the lowest CME found at the last row.
The results should include
Follow the details given here