如何操纵dlib标志点

时间:2016-06-27 13:26:41

标签: c++ opencv image-processing face-detection dlib

我想知道如何操纵/访问dlib标志点。我在相机预览上运行代码,目的是检测一些特定的情绪。我想检查一下例如眼睑之间的距离或嘴唇的位置如何随时间变化等等。

1 个答案:

答案 0 :(得分:2)

对于python api - 尝试此链接(https://matthewearl.github.io/2015/07/28/switching-eds-with-python/

对于C ++ - http://dlib.net/train_shape_predictor_ex.cpp.html样本具有估算双眼距离的代码:

double interocular_distance (
    const full_object_detection& det
)
{
    dlib::vector<double,2> l, r;
    double cnt = 0;
    // Find the center of the left eye by averaging the points around 
    // the eye.
    for (unsigned long i = 36; i <= 41; ++i) 
    {
        l += det.part(i);
        ++cnt;
    }
    l /= cnt;

    // Find the center of the right eye by averaging the points around 
    // the eye.
    cnt = 0;
    for (unsigned long i = 42; i <= 47; ++i) 
    {
        r += det.part(i);
        ++cnt;
    }
    r /= cnt;

    // Now return the distance between the centers of the eyes
    return length(l-r);
}

同样可以访问任何面部特征 有关功能号码的更多信息,请参阅dlib/image_processing/render_face_detections.h