Question

Je veux faire la soustraction d'arrière-plan dans un fichier vidéo en utilisant la méthode OpenCV. En ce moment, je suis capable de faire la soustraction d'arrière-plan, mais le problème est que je ne pouvais pas obtenir la sortie en mode couleur. Toute la sortie après soustraction de l'arrière-plan vient en mode couleur en niveaux de gris :. ( Je veux obtenir les informations de couleur au premier plan qui est la sortie résultante après fond obtenu soustrait

.

Puis-je le faire en utilisant la technique de masquage ?? comme la procédure suivante que je pense à.

  1. Capture d'entrée - InputFrame (RGB)
  2. Processus InputFrame
  3. Soustraire fond, premier plan de magasin dans TempFrame (qui vient en niveaux de gris : ()
  4. Créer un TempFrame à l'aide du masque
  5. Appliquer le masque créé à l'InputFrame
  6. Obtenir au premier plan de couleur comme OutFrame

Je suis frappé avec faire le masquage en utilisant OpenCV. Je suis juste un très débutant dans OpenCV. S'il vous plaît aidez-moi à surmonter cela.

Merci d'avance.

Était-ce utile?

La solution

D'accord, je ne comprends pas comment TempFrame (votre premier plan) pourrait être si vous Niveaux de gris utilisez la soustraction d'arrière-plan. Vous devez utiliser un algorithme très spécial. Mais en supposant TempFrame est gris, alors vous feriez ceci:

cv::Mat mask = tempFrame > 0.5;

cv::Mat outFrame;
capturedFrame.copyTo(outFrame, mask);

C'est le code OpenCV 2.0 ci-dessus. Le nombre 0,5 est un seuil, vous devrez le mettre quelque chose appropriée. Si vous n'êtes pas d'utiliser des images à virgule flottante, vous auriez probablement mettre à 128 ou quelque chose comme ça. Ceci est la même chose dans OpenCV 1.1 Code:

CvMat* mask = cvCreateMat(tempFrame.rows, tempFrame.cols, CV_8UC1);
cvCmpS(tempFrame, 0.5, mask);

CvMat* outFrame = cvCreateMat(capturedFrame.rows, capturedFrames.cols, CV_32FC3);
cvCopy(capturedFrame, outFrame, mask);

Autres conseils

http://vimeo.com/27477093

code est ici

http://code.google.com/ p / derin-deli-mavi / téléchargements / détails? name = denemeOpenCv23.zip & peut = 2 & q =

pour atteindre un premier plan de couleur il suffit de copier l'image à l'aide d'un masque avant-plan

// image.copyTo (au premier plan, au premier plan);

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top