I found an interesting video detailing a new [well, new to me anyway] and surprisingly simple way to rescale images while retaining image quality. I’ll summarize the video if you don’t have time.
There are two basic things you can do to alter an image’s size, cropping and scaling. Both present difficulties when we want to retain verisimilitude. When you crop an image, you necessarily cut out other parts. When you scale an image, you introduce dilations (stretching) and contractions (squishing). Or, if you scale the image so that it’s proportional to its original size, you dilute the quality.
This new method rectifies these problems by examining the color structure of the image. It defines an energy function over the image based upon some metric, such as gradient magnitude (i.e. how fast color values change), calculates minimum pathways (i.e. where the colors change the least), and removes them. If you wanted to reduce the width of an image by a pixel, for instance, this method would calculate the vertical pathway (of width 1) which minimizes the energy function and then remove it. This method also allows you to expand an image beyond its original dimensions. Instead of deleting pathways, you add them.
Some other interesting tools arise from this method. For example, you could delete specific objects from a scene. Instead of calculating the minimum pathways of the entire image, you specify where in the image the pathways must intersect (namely, the object you want to get rid of), and voila!
View the video if you want to see demonstrations. Cool stuff!