Is there a free tool that's good at extracting objects from photos?

It has to work on linux

For instance, extracting a person from a photograph.

  • Define 'object'...'cause my first thought was something about cryptographic. – Bobby Nov 8 '09 at 22:45
  • Edited for clarification. I guess I should've said photographs instead of images – hasen Nov 8 '09 at 22:50

Using imagemagick, you can use a mask, edge detection, or a combination of the two techniques to cut shapes out of an image. The mask example in particular is very powerful if you have a picture with a known background.

The add texture to image example shows how to create a mask of a complex photo as part of the process, but it would work on a person also.

On a photo of a pagoda, the command:

convert pagoda_sm.jpg -fuzz 10% -transparent white \
      -alpha extract -negate  pagoda_mask.png

creates

pagoda image mask

Which you can then use to cut the out everything that's not background in this case from the image.

There are no perfect tools, free or no, that perform this task automatically on all images.

Computer vision is a research area and a Hard Problem. I don't think you should expect to find free software that will do a good job of it.

  • I know, there's no way to do it perfectly, but there are many ways to make it easier. – hasen Nov 9 '09 at 3:30

It's overkill (a full application as opposed to a tool), but you can do this with GIMP.

The basic tutorials are here and you can certainly make a script that will speed the process up.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.