Domanda

che voglio fare sottrazione dello sfondo in un file video utilizzando il metodo OpenCV. In questo momento sono in grado di fare la sottrazione dello sfondo, ma il problema è che non ho potuto ottenere l'output in modalità colore. Tutto l'uscita dopo aver sottratto il fondo è in arrivo in modalità a colori in scala di grigi . ( voglio ottenere le informazioni colore in primo piano, che è l'uscita risultante dopo sfondo ottenuto sottratto

.

Posso farlo utilizzando la tecnica di mascheramento ?? come la seguente procedura che sto pensando.

  1. Capture Input - InputFrame (RGB)
  2. Processo InputFrame
  3. Sottrai sfondo, negozio di primo piano nella TempFrame (che sta arrivando in scala di grigi ()
  4. Creare una maschera usando TempFrame
  5. Applicare la maschera creata per il InputFrame
  6. Ottieni primo piano colorato come OutFrame

Sono colpito con fare la mascheratura utilizzando OpenCV. Sono solo un principiante in OpenCV. Ti prego, aiutami a superare questo.

Grazie in anticipo.

È stato utile?

Soluzione

Va bene, non capisco come TempFrame (il vostro primo piano) potrebbe essere scala di grigi se si utilizza sottrazione del fondo. È necessario utilizzare un algoritmo molto speciale. Ma supponendo TempFrame è in scala di grigi, allora si potrebbe fare questo:

cv::Mat mask = tempFrame > 0.5;

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

Questo è il codice OpenCV 2.0 sopra. Il numero 0.5 è una soglia, è necessario impostare a qualcosa di appropriato. Se non stai usando le immagini in virgola mobile, si sarebbe probabilmente imposta a 128 o qualcosa di simile. Questa è la stessa cosa in OpenCV Codice 1.1:

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);

Altri suggerimenti

http://vimeo.com/27477093

codice è qui

http://code.google.com/ p / derin-deli-Mavi / downloads / dettaglio? name = denemeOpenCv23.zip & can = 2 & q =

per raggiungere un primo piano di colore immagine basta copiare utilizzando la maschera di primo piano

// image.copyTo (in primo piano, primo piano);

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top