ningyuwhut
ningyuwhut

Reputation: 619

how to extract an object from an image

I want to extract an object such as a man ,a car or something like that from an image.The image is just an ordinary iamge, not medical image or other types for specific purpose.

I have searched for a long time and found that the automatic image segmentation algorithms just segment the image into a set of regions or gives out the contour in the image,not a semantic object. so I turned to the interactive image segmentation algorithms and I found some popular algorithms like interactive graph cuts and SIOX and so on. I think these algorithms just meet my demand.

Further more, I also downloaded two interactive image segmentation tool,the first one is the interactive segmentation tool, the second one is the interactive segmentation tool-box.

So my quesions are

1.if the interactive image segmentation algorithm is the right solution for my task since the performance is the most important.

2.and if I want to use the automatic image segmentation algorithm, what should I do next?

Any suggestion will be  approciated.

Upvotes: 0

Views: 2580

Answers (5)

smttsp
smttsp

Reputation: 4191

It is quite late but there is an algorithm called connected component labeling, which you may find useful.

here is wiki link of the algorithm

Upvotes: 0

Robert Bean
Robert Bean

Reputation: 859

If you want to pick out a object from a single static image just by a few scribbles. I recommend you have a read of

'Closed-form solution to image matting' 
or 'Spectral matting', 
or 'lazy snapping' 

but as in my tests, the last doesn't perform as well as the first two methods when dealing with subtle objects like hairs. However you can find their source matlab codes very easily from google.

But the first two method are't so pleasant to use actually, I think you'll need to do lots of modification to make them easy to use. It's main problem IMHO, is it requires very decent scribbles on the image, that's if you draw some extra scribbles or at wrong positions, you'll ruin your object cutting .

Apart from these, you may try 'bayesian matting, possion matting, etc.' which all request some helping image called trimap, and it's hard to draw really.

Upvotes: 1

user1196549
user1196549

Reputation:

If this is a business case, you'd better look for companies specialized in "video content analysis". I mean it: reliable people and vehicle detection aren't a single man's project.

Genreral purpose segmentation tools won't do the trick because they have no notion of what a man or a car look like. All they are deemed to do is to find uniform regions in an image.

Upvotes: 0

killogre
killogre

Reputation: 1800

Other than OpenCV, I would suggest looking at ITK. It is very popular in medical image analysis projects, because there it is known that semi-automatic segmentation tools provide the best results. I think that the methods apply to natural images as well.

Try looking at tools like livewire segmentation, and level-set based image segmentation. ITK has several demos that allow you to play with these tools on your own images. The demo application such as this is part of the open source distribution, but it can be downloaded directly from the itk servers (look around for instructions)

Upvotes: 0

Extracting objects from an image, specially a picture is not that easy as you think, you may want to take a look at the OpenCV project.

OpenCV

Upvotes: 0

Related Questions