How to remove shadow from frames extracted with foreground detector?
    5 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Avinash S
 el 5 de Feb. de 2016
  
    
    
    
    
    Comentada: Avinash S
 el 7 de Feb. de 2016
            Im working on tracking the human silhouette with input from webcam. I have used vision.foregroundDetector to get the foreground masks. But they detect the shadows too. How to eliminate them? Code:
foregroundDetector = vision.ForegroundDetector('NumGaussians',3,'NumTrainingFrames',10,
'LearningRate',0.000001); 
vid = videoinput('winvideo', 1); %select input device 
i=1;
while(1) 
    %frame = step(vid); % read the next video frame
    frame = getsnapshot(vid);  
    foreground = step(foregroundDetector, frame);
    se = strel('square', 3);
    filteredForeground = imopen(foreground, se);
    fname = sprintf('frames/frame%d.jpg',i);
    imwrite(filteredForeground,fname,'jpg');
    i = i+1;
end
Output Frame:

0 comentarios
Respuesta aceptada
  Dima Lisin
    
 el 6 de Feb. de 2016
        One thing to try is to convert the video frame to a color space like HSV or YCbCr, and then only feed the chroma channels into the foreground detector. This is going to eliminate most shadows. However, it may also eliminate legitimate objects which do not have a lot of saturated colors.
Más respuestas (0)
Ver también
Categorías
				Más información sobre Computer Vision Toolbox en Help Center y File Exchange.
			
	Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
