Seam Carving
The goal was to resize images by removing seams in the images that contain the least amount of "energy". Here "energy" is an function that maps pixel locations to values that we define based on what we want to remove from the image. This technique allows us to avoid sacrifice detail when we scale the image. It can also be done automatically, unlike cropping. This method is presented in this paper Seam Carving for Content-Aware Image Resizing.
Details
Below, in the Gallery, are examples of images that have had their widths reduced by 50%. The originals along with the 20% intermediate can be seen here. using gradient magnitude seam carving energy function. The gradient magnitude function effectively computes a differential between adjacent pixel values so it allows our dynamic programming algorithm to avoid edges- regions considered to of high energy and particularly noticable to human eyes. As such, low energy seams, that is seams without many edges, will be removed as the image rescales.
Interestingly, we can extrapolate this idea even further. The idea of low and high energy seams can be utilized to expand images and remove objects. All we have to do is define an appropiate energy function. The results and methodology can be seen in the original project page .
Gallery