Background Subtraction using gmm on single image
10 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
clc
clear all
close all
[file, pathname] = uigetfile('D:\studies\FYP\original images.jpg','Load Image');
cd(pathname);
foregroundDetector = vision.ForegroundDetector('NumGaussians', 3, ...
'NumTrainingFrames', 50);
face_original = imread(file);
size_img = size(face_original);
imshow(face_original), title ('Original Image')
foreground = step(foregroundDetector, face_original);
figure; imshow(foreground); title('Foreground');
this code gives black screen.
2 commentaires
Image Analyst
le 31 Mai 2020
I guess it didn't find a face. But what do I know -- you didn't post your image.
Réponses (1)
Aakash Mehta
le 24 Juin 2020
ForegroundDetector method is used to detect the motion in the video. As you are applying it to a single image, it is considering the whole image as a background.
foreground = step(foregroundDetector, face_original);
Above line will give the foreground mask which is 2D matrix. It contains 0's and 1's. In your case it's giving all 0's as it is not able to detect any foreground. That's why when you are trying to display image you are getting black image.
1 commentaire
Sarvath Sharma
le 17 Juil 2020
Modifié(e) : Sarvath Sharma
le 17 Juil 2020
So how would one use the foregroundDetector and the step function to clear out and determine the 1s and 0s for the foreground mask? Would we have to do a comparison between two images and pass that in as a parameter to the step fucntion?
Voir également
Catégories
En savoir plus sur Computer Vision Toolbox dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
