Wednesday, September 5, 2007

Updates for the Retargeting GUI

It's always nice to find out a project you threw together is being used. It seems that although other development efforts around the web have sprung up around the content-aware image resizing, people like having a stand-alone, easy to run implementation.

Improvements to this release:
  • You can mark areas of the image that you would like to retain/remove with a paint style mouse gesture.
  • JPG support (built into the windows binary)
  • I am now using the Qt Graphics View Framework, which should make image handing (zooming etc) a bit snappier.
  • Update: I got notified of a few bugs, so I fixed those using valgrind
  • Update: While I was at it, I implemented copy and paste in windows
Still things that could be done:
  • Various algorithm speed improvements
  • Copy and Paste [Update: completed in latest build]
  • Anything else you guys suggest
I'm on the lookout for people who have written more efficient and true to the paper seam carving algorithms to improve the back-end. So if you are such a person, or know of such an implementation on the web, give me a heads up.

Again the download links are

Here are some images showing the program in action...

A nice castle image before any retargeting:



Mark areas that we want to remove and we want retain, in this case we want to make sure the castle is not distorted and remove the pesky pedestrian:


The re targeted image, pretty slick eh?

Update: The latest version is no longer based on Andy's implementation but CAIR. See the seam-carving-gui project page for more.

6 comments:

Barry said...

Nice example, but maybe you should cut the person's shadow out as well!

There's a flickr group for this kind of thing now, with links to your software (which I've used, cool)

http://www.flickr.com/groups/452426@N25/

flowpass said...

Very cool initiative. I hope you will make the version for OS X too! I don't know enough about programming to do...

Very cool! Also stumbled it ;) That should increase your traffic.

Brain_ReCall said...

Hi Gabe. I've been working on a implementation of the resizer. I believe it to be a close representation of the paper, although I haven't looked at your code yet to compare. I made some comparison images of our two methods, and mine does produce different results, with some less artifacts. However, in its current form its quite slow. Email me at brain.recall@gmail.com and I'll send you the examples. I still got a little work to do on my code yet.

Alex Railean said...

Gabe, the program works pretty good, but there is one thing that makes it tough to use - the fact that one has to guess the right size of the smaller picture. If my guesstimate is poor, I'll have to apply the algorithm again, marking the red and the green zones, then making yet another guess.

Perhaps it would be better if:
- I could press undo, and choose a smaller image size
- I could decrease the image size incrementally, while the program memorizes the weights, so I don't have to keep re-assigning areas.

Justin said...

Where's the makefile and lib dependencies?

Justin said...

Ah, the website had it if I looked harder. But the resize operation is definitely not right.