Exemplo n.º 1
0
Model::Model(int device) :
    capture(VideoCapture(device)),
    store(Store()),

    // Completed trackers
    faceHaarTracker(new FaceHaarTracker(&store)),
    faceCAMShiftTracker(new FaceCAMShiftTracker(&store)),
    faceHaarCAMShiftTracker(new FaceHaarCAMShiftTracker(&store)),
    faceMTracker(new FaceMTracker(&store)),
    faceHaarCAMShiftACTracker(new FaceHaarCAMShiftACTracker(&store)),

    eyesHaarTracker(new EyesHaarTracker(&store)),
    eyesHaarX2Tracker(new EyesHaarX2Tracker(&store)),

    // Work-in-progress trackers
    faceTracker(new FaceTracker(&store)),
    eyesTracker(new EyesTracker(&store)),
    gazeTracker(new GazeTracker(&store))

{
    string props[] = {"Millisecond", "Frames", "Ratio", "Width", "Height",
                      "FPS", "FOURCC Codec", "Frame Count", "Format",
                      "Mode", "Brightness", "Contrast", "Saturation",
                      "Hue", "Gain", "Exposure", "RGB colour", "White Balancing",
                      "Rectification"};
    for(int i=0; i<19; i++)
    {
        double prop = capture.get(i);
        if(prop > 0)
            qDebug() << "Property supported:" << props[i].c_str() << '=' << prop;
    }

    // Add runtime filters
    filters.push_back(new EqualiseFilter(&store));
    filters.push_back(new DoGNormFilter(&store));
    filters.push_back(new GrayscaleFilter(&store));
    filters.push_back(new HSVFilter(&store));
    filters.push_back(new YCbCrFilter(&store));
    filters.push_back(new ErodeDilateFilter(&store));
    filters.push_back(new CannyEdgeFilter(&store));
    filters.push_back(new SobelFilter(&store));
    filters.push_back(new HarrisCornerFilter(&store));
    filters.push_back(new CornerFilter(&store));
    filters.push_back(new GaborFilter(&store));

    // Instantiate completed trackers
    faceHaarTracker->enable();
    faceCAMShiftTracker->disable();
    faceHaarCAMShiftTracker->disable();
    faceMTracker->disable();
    faceHaarCAMShiftACTracker->disable();
    eyesHaarTracker->enable();
    eyesHaarX2Tracker->enable();

    trackers.push_back(faceHaarTracker);
    trackers.push_back(faceCAMShiftTracker);
    trackers.push_back(faceHaarCAMShiftTracker);
    trackers.push_back(faceMTracker);
    trackers.push_back(faceHaarCAMShiftACTracker);

    trackers.push_back(eyesHaarX2Tracker);
    trackers.push_back(eyesHaarTracker);

    // Instantiate work-in-progress trackers
    faceTracker->disable();
    eyesTracker->disable();
    gazeTracker->enable();

    trackers.push_back(faceTracker);
    trackers.push_back(eyesTracker);
    trackers.push_back(gazeTracker);
}