background subtraction in video or image

I want to background subtraction from video or image and I don't have any background image without foreground objects. Can any body give me code for that? I attached a sample of images.

 Réponse acceptée

Dima Lisin
Dima Lisin le 1 Juin 2015

0 votes

You can use vision.ForegroundDetector object in the Computer Vision System Toolbox.

2 commentaires

mary khaliji
mary khaliji le 4 Juin 2015
I don't want a rectangle around object, I want a Border around each object. How I can do this for the images I attached them here (The number is higher)? can you give me a code please? I don't have enough time.
Image Analyst
Image Analyst le 4 Juin 2015
You can't expect Dima to drop everything and develop a turnkey application for you. You can hire other people at the Mathworks (consultants) to do that but it won't be instant.
You will have to first find the objects that you want to outline. That means segment the image and get a binary image. Then you can call bwperim() or bwboundaries(). bwperim() gives you a binary image whereas bwboundaries() gives you the x,y coordinates of the outline pixels.

Connectez-vous pour commenter.

Plus de réponses (2)

Image Analyst
Image Analyst le 1 Juin 2015

0 votes

Then you'll have to estimate it. For example, find the foreground objects somehow and then estimate the background by using roifill() to fill in where the foreground objects are. But if you can do that, then maybe you don't even need to subtract the background. Why don't you attach a couple of frames from your video and tell us what you want and don't want?

4 commentaires

mary khaliji
mary khaliji le 1 Juin 2015
Modifié(e) : Image Analyst le 1 Juin 2015
Indeed I want to obtain foreground objects via background subtraction based on a Gaussian-mixture color model or other ways. I attached a sample of images.
Image Analyst
Image Analyst le 1 Juin 2015
The Computer Vision System Toolbox has utilities for that. I don't have that toolbox.
mary khaliji
mary khaliji le 1 Juin 2015
Can I obtain background from roifill() function? if no, is there any way to do that?
Image Analyst
Image Analyst le 1 Juin 2015
You have to first find the foreground objects so you have a binary image of the foreground, then you can fill them in. I suggest you follow up on Dima's answer as that is the best way.

Connectez-vous pour commenter.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by