Ejemplo n.º 1
0
    public bool track(Mat im, FaceTrackerParams p)
    {
        if (points.Count <= 0)
        {
            return(false);
        }


        //convert image to greyscale
        Mat gray = null;

        if (im.channels() == 1)
        {
            gray = im;
        }
        else
        {
            gray = new Mat();
            Imgproc.cvtColor(im, gray, Imgproc.COLOR_RGBA2GRAY);
        }

        //initialise
//				if (!tracking)
//						points = detector.detect (gray, p.scaleFactor, p.minNeighbours, p.minSize);

        for (int i = 0; i < points.Count; i++)
        {
            if (points [i].Length != smodel.npts())
            {
                return(false);
            }

            //fit
            for (int level = 0; level < p.ssize.Count; level++)
            {
                points [i] = fit(gray, points [i], p.ssize [level], p.robust, p.itol, p.ftol);
            }
        }

        return(true);
    }