Resizor :: FAQ
What is this image retargeting / seam carving thing?
It is a method described in a recent Siggraph Paper by Shai Avidan and Ariel Shamir that lets you resize images not just by scaling them but by intelligently adjusting the distance between objects in the scene. Check out the original demo video to get an idea of the possibilities.
Is there a version for Mac OS X/Linux?
In theory yes, in practice not yet. The software itself could run on both Mac OS X and Linux (and others) without any major adjustments to the code since it uses the cross-platform wxWidgets framework for the user interface.
It does, however, have to be recompiled (i.e. translated into an operating system specific program file), which is only possible on a system running that operating system. Unfortunately, I currently have access to neither a Mac nor a Linux box. Maybe in the future.
If you know C++ and wxWidgets and you would be willing to compile the program on one of those platforms, please contact me.
Are you planning to make this into a plugin for Adobe® Photoshop®?
There are currently no plans to integrate Resizor into Photoshop. Adobe has recently hired one of the scientists behind the paper on image retargeting, and we can thus expect the algorithm to be featured in Photoshop CS4 in one form or another. A Photoshop plugin would therefore only be useful until the next version comes out, and the amount of work involved in creating such a plugin is not at all viable considering that fact. Moreover, the Adobe Photoshop SDK does not allow filters to resize images and thus require a hack solution using an automation plugin. So, sorry, no.
Is there/will there be a version for film/video?
One of the researchers of the original seam carving paper has recently demonstrated seam carving on a video. The problem is that this motion version of the algorithm has not been described anywhere as far as I know. It is NOT a part of the original paper. Adobe may include such a feature in the next version of AfterEffects, but there is not much that I can do to support it in Resizor without the motion algorithm being published.
Please do let me know if you find a description of the video version of the algorithm.
How do I install Resizor?
There is no need to install it, you can just run it right away by double clicking the program file. You can always move it into you program files folder, though, and then add a shortcut to your start menu and/or desktop. Depending on the demand I might also offer an installer for download in the future.
What's the advantage of using Resizor over Photoshop's Image Size command?
Photoshop does not yet offer image retargeting. If you are only interested in conventional resampling, Resizor offers more filters, some of them (such as Lanczos) providing superior quality than the ones Adobe offers in Photoshop.
Retargeting is real time in the Siggraph Video, why isn't it in Resizor?
The demo video uses precomputed data, which means the image has to be preprocessed before the real time resizing can take place, they just don't show you that in the video. Also you will note that they only do it in one direction, which is by far less complex to compute. If you're math savvy and you want to know why, you can take a look at their original paper. Otherwise you'll just have to trust me on this one ;-)
It takes forever to process! I tried to resize a 3000 x 2000 pixel image to 640 x 426 and it takes about an hour to compute.
You probably had the "Retarget" option selected. In that case, processing times like that are normal due to the complexity of the computations involved. But keep in mind that retargeting most likely does not make sense for cases like the one mentioned. Processing times for practical transforms should not exceed 4-10 minutes.
Here is why: Retargeting is something entirely different than resampling. To get useful results, the photo in question would have to have only 640 x 426 pixels (the target size) representing real objects, the rest would have to be all more or less empty space. Said empty space does NOT have to be contuguous. For example, retargeting a picture of several rocks in a lake to a smaller size would remove the water between them, moving them closer together, but it would NOT make the individual rocks smaller. If your target size is smaller than the total size of the objects in the image, moving them closer together will cause them to "crash" into each other and you won't get any usable results. Plus, it would take very long to compute, as you already experienced.
If that sounds a bit complicated, have a look at the researchers' video on youtube, that should make it clearer.
Here is another example: If you have a photo of two faces facing each other and a relatively uniform background that covers about a third of the picture (does not have to be contiguous), and you retarget from 3000 x 2000 to 2000 x 2000, which takes about 6 minutes on my machine (using version 1.1), the algorithm will move the faces so close to each other that their noses touch, without them appearing stretched, even though you are changing the size non-proportionally. It just removes the empty space between them. Going smaller than that size will cause weird results and/or artifacts since the algorithm will start to delete what it thinks is the closest thing to empty space inside the face areas. In practice this means that mouth, nose, and eyes are moved closer together and so on.
Also make sure you have version 1.1 and not version 1.0 since the new version is about twice as fast.
Help! I'm getting weird results/artifacts when choosing "Retarget"!
See the previous item. Most likely you are downsizing to a size that is too small to accomodate all objects from the original image. Since retargeting does not scale the objects but only moves them closer together, there is a point where they start to "crash" into each other. Try a bigger size or use "Resample" instead if that is what you wanted.
How do I use the software?
If you have used Adobe® Photoshop®'s Image Size command before, you should feel right at home. But you can always have a look at the Documentation.
Is this really free? How about commercial use?
This is free for both personal and commercial use. If you find it useful, though, I'd be happy if you considered to make a little donation, even if it's just $2.
Why should I donate?
I have developed this software exclusively in my spare time. It is a lot of work to plan, research, develop, test, and release such a software. Just to put this into perspective: There are more than 6000 lines of hand-written C++ source code.
So, if you use the software a lot, or if you use it commercially, I would very much appreciate it if you folks supported me with a small donation. Donations are handled via PayPal, thus donating is both very easy and very safe for you.
Nevertheless, the software is still completely free, so you decide.
Depending on the donations I receive, I may further improve the software's speed and image quality as well as add new features (upsizing support for retargeting, protecting regions and removing objects like in the video, etc.).
Donations also determine if I can release other products in the future. I have quite a lot of very interesting image processing stuff (and by interesting I really mean interesting) that I could make into releasable software. But if this turns out to be a losing bargain for me all over, I'll rather spend my life with things more interesting than keeping input controls in perfect sync in a dialog box. After all, I'm 21 years old…
I contacted you using the feedback form, why didn't I get an answer?
I get a huge amount of messages, so I can't guarantee that I will be able to answer all of them personally. However, I do assure you that I really do read them all. My apologies if I did not have the time to respond to your message, if your question was really extremely important, please consider posting it again after a week or so. If you do so, please include a brief info that it is a repost.
Resizer is spelled with an 'e', you know…
That's intentional. The name Resizor is a mixture of resizer and razor, as in "razor sharp image".
Hey, it's better than "Standalone wxWidgets-based image-I/O-enabled UI for class ImSeamCarver and class ImResampler (branch with legacy non-templated Core Color module stubs), Release build with debug console disabled", right?
I'm an Adobe CEO, can I hire you?
Sure ;-)

