Seam Carving for Content-Aware Image Resizing
Seam carving for content-aware image resizing [20 MB PDF]
|Seam carving is an image resizing algorithm developed by Shai
Avidan and Ariel Shamir. This algorithm alters the dimensions of an
image not by scaling or cropping, but rather by intelligently
removing pixels from (or adding pixels to) the image that carry
The importance of a pixel is generally measured by its contrast when compared with its neighbor pixels, but other measures may be used. Additionally, it's possible to define (or autodetect) areas of high importance (faces, buildings, etc.) in which pixels may not be deleted, and conversely, areas of zero importance which should be removed first. From this information, the algorithm detects seams (continuous lines of pixels joining opposite edges of the image) which have the lowest importance, and deletes those. This shrinks the image by one horizontal or vertical line, depending on which direction the seam ran.
Seam carving can also be run in reverse by adding interpolated pixels along the lowest energy seam.
With this technique, it's now possible to reduce or enlarge pictures by a wide range, while still retaining details. In normal image scaling, it's often not possible to scale about factor greater than 2 or less than 0.5, without losing much of the images quality.