OpenCV - Gesichtserkennung: Rechteck um das Gesicht

Bin ich angefangen mit OpenCV und wollte mal testen, einige Proben. Die Probe, die ich verwenden legt ein Rechteck um die Gesichter auf dem Bildschirm. Aber die daraus resultierenden Entdeckungen Ruckeln und sporadische, wie verbessere ich meinen code, um die Erkennungen glatter? Ich benutze haarcascade_frontalface_alt.xml.

void detectAndDisplay( Mat frame )
{
   vector<Rect> faces;
   Mat frame_gray;
   cvtColor( frame, frame_gray, CV_BGR2GRAY );
   equalizeHist( frame_gray, frame_gray );

   face_cascade.detectMultiScale( frame_gray, faces, 1.1, 2, 0, Size(40, 40) );
   for( size_t i = 0; i < faces.size(); i++ )
   {
      Mat faceROI = frame_gray( faces[i] );
      int x = faces[i].x;
      int y = faces[i].y;
      int h = y+faces[i].height;
      int w = x+faces[i].width;
      rectangle(frame,
          Point (x,y),
          Point (w,h),
          Scalar(255,0,255),
          2,
          8,
          0);
    }
imshow( "Capture - Face detection", frame );
}
  • Was meinst du mit "es macht es ein wenig spastisch"? Der code ist relativ sauber ist, wie es ist. Schritt 1) Vorverarbeitung des Bildes. Schritt 2) Erkennt die Gesichter. Schritt 3) Ziehen Sie ein Rechteck um die Gesichter. Was daran gefällt Ihnen nicht?
  • Ich habe gesehen, ein paar clips auf youtube und Ihre Rechteck blieb perfekt auf dem Kopf, mir ist ein wenig nervös.
InformationsquelleAutor Haagenti | 2012-11-23
Schreibe einen Kommentar