Saturday, January 5, 2008

Relicense and Update Seam Carving GUI

Well, demand has been pretty steady for the Seam Carving GUI so I've gone ahead and updated it to the latest version of CAIR. Joe says there should be some model performance improvements and possibly some behavior fixes.

Last week a link to the Google Code page for the application made it pretty high (6th or 7th) on programming.reddit.com which brought in a flurry of traffic :) I hope some people found the program useful.

I have relicensed the program as GPL v2.0 and Joe will be relicensing CAIR as LGPL v2.1 (and gave me permission to redistribute it under that license). This came after a commenter notified us of the incompatibility of GPL v3.0 and Qt4 from Trolltech which is GPL v2.0. Apparently v2 and v3 are incompatible licenses. I find in unfortunate that an open source license is creating these types of divisions and inconveniences in the free software community, but the folks in the GPL v3 camp are vary passionate about the IP stuff that the v3 license protects even to the detriment of license compatibility.

As usual, get the latest source and binaries at the seam-carving-gui download page.

Thursday, November 15, 2007

What's That? More Seam Carving Craziness?

They just don't stop coming: more for those in the liquid resizing/content aware image resizing/seam carving implementation scene.

Brain_Recall gets most of the credit for this one, as he modified his source and the GUI and sent me the update. I added some tool-tips, tried to make the GUI more user friendly and cleaned up some of the implementation.

New goodies:
  • HD Quality parameter which produces better results when decreases both dimensions of an image but is more computationally expensive.
  • Add Weight/Weight Scale parameters. These were hard coded before, now you can play around with them although the defaults should work in most cases.
  • Removed Marked button - will shrink an image enough to remove a red area marked for removal and then stretch it back to the original dimensions. The classic "get that guy out of my photo" solution.
As usual, get the latest source and binaries at the seam-carving-gui download page.

Sunday, November 4, 2007

Seam Carving GUI Updates

That's right folks even more updates. I really didn't expect this project to get so much attention, but I'm a sucker for making things the people use, and then making them better for the users.

Improvements:
  • Upgraded to CAIR 2.6.1 (considerably faster!)
  • Can view images horizontal energy function as well as vertical (in the View menu)
  • Created a cursor when hovering over the image to represent the mark area size
  • Retain/Remove mask is also shrunk with the image so you can see how effective it is and can resize in increments without re-marking the mask areas
  • You can select to erase areas marked green/red (retain/remove), i.e. an mask eraser tool
  • Mac build now includes JPEG support
Building a distributable package for the Mac turns out to be a non-trivial thing. Especially when you want independent Qt4 frameworks and image plugins loaded from within the application bundle. I wrote a script included in the source distribution that does the dirty work to make it easier in the future. It was really quite painfull to get it right, so maybe someone else can use this project as an example and save themselves some headache.

I've also created a Google Code project seam-carving-gui to host the binaries etc. Also I uploaded new screenshots at my static page. No use filling up space here.

Tuesday, October 23, 2007

New Backend for the Seam Carving GUI

The original seam carving algorithm implementation that I based the Seam Carving GUI on was written as a quick and dirty project by Andy Owen. Andy has moved onto other things and I got an email from Brain_Recall (Joe) who was working on a more true to the paper implementation of the algorithm with his own optimizations (called CAIR). Joe’s work as really matured into some nice optimized, mutli-threaded code and produced much nicer results. Most noticeable is the resizing images to larger dimensions than the original.

So I modified the GUI to use CAIR (newest version on sf.net) and take advantage of its new features. I also threw in some itch features.

New features

  • Can set a quality parameter that gives you a quality/time tradeoff when resizing
  • View algorithm metrics on the image: grayscale, edge, and energy
  • Can specify weights (intensities) for retain/remove regions
  • 2-3X faster (especially on multi-core machines)
  • Undo/Repeat
Here is a screenshot of the GUI:



To give you an idea of the quality of CAIR, here are some more resized versions of the ball image.





Download Links:
Update: Sorry for all the mess with the Mac version. First I didn't bundle in Qt, then my upload continuously failed to the static Goggle Pages host.

Update: The new mac build should include JPEG support. Get it at the download page linked above.