2016-04-24 6 views
0

Hier ist mein Code, der Rechtecke verwendet, um erkannte Gesichter zu markieren. Wie kann ich stattdessen Ellipsen um Gesichter machen? Gibt es eine cvEllipse Klasse anstelle einer cvRectangle? Ich habe versucht, so zu schreiben, aber es scheint cvEllipse existiert nicht oder sein Name ist unterschiedlich.Wie ändere ich Rechtecke in einer Gesichtserkennung in Ellipsen in Javacv?

CvHaarClassifierCascade cascade = new CvHaarClassifierCascade(cvLoad(XML_FILE)); 
    CvMemStorage storage = CvMemStorage.create(); 
    CvSeq sign = cvHaarDetectObjects(
     img, 
     cascade, 
     storage, 
     1.5, 
     3, 
     CV_HAAR_DO_CANNY_PRUNING 
    ); 

    cvClearMemStorage(storage); 

    total_Faces = sign.total();  

    for(int i = 0; i < total_Faces; i++){ 
     CvRect r = new CvRect(cvGetSeqElem(sign, i)); 
     cvRectangle(
      img, 
      cvPoint(r.x(), r.y()), 
      cvPoint(r.width() + r.x(), r.height() + r.y()), 
      CvScalar.RED, 
      2, 
      CV_AA, 
      0 
     ); 

     x=r.x(); 
     y=r.y(); 
     h=r.height(); 
     w=r.width(); 

    }   
+0

Gefunden diese 'Imgproc.circle (mat, Mitte, r.height()/2, New Scalar (1));'. Wo kann ich Mat bekommen? –

Antwort

0
import static org.bytedeco.javacpp.opencv_core.cvPoint; 
import static org.bytedeco.javacpp.opencv_core.cvScalar; 
import static org.bytedeco.javacpp.opencv_core.cvSize; 
import static org.bytedeco.javacpp.opencv_imgproc.cvEllipse; 

---- 

cvEllipse(img, cvPoint(), cvSize(), 2d, CV_AA, 0d, CvScalar.RED); 
Verwandte Themen