Shai Avidan, Ariel Shamir
SIGRAPH '07
Joshua Horacsek
How would you resize an image?
Define an "energy" term for pixels, but what's an appropriate "energy" for a pixel? Low if it blends in with its surrounding area, high if it doesn't
This helps us quantify energy, but is not a strategy for removing pixels
A few other energy terms
Example image and energy map
Crop
Column
Row
Pixel
Column is pretty good, but motivates a better approach
(Ignore the indigo line for now)
Column is pretty good, but motivates a better approach
A connected paths down the image sounds like a good idea.
such that
Formally, for an n by m image, a horizontal seam is defined as
Vertical seams are similar
such that
Using the intuition from the energy , should find a seam that minimizes energy along said seam
Done via dynamic programming. Similar for vertical seams
Let's focus on shrinking images...
Changes along one axis, i.e. an n by m image becomes an n' by m image, where (n-n') > 0
Remove low energy seams
Both axes,an n by m image becomes an n' by m' image, where (n-n') > 0, (m-m') > 0
They have a non-zero intersection, which do you remove first? Is that other seam still a seam after removal?
Redefine this as a minimization process
Where
Again, a dynamic programming problem
Find the first k optimal seams, then average the content
Find a seam, average content
Content amplification
Enlargement
Gradient Domain Carving
Person removal
Face detection
Possible extensions of the work