【发布时间】:2016-04-24 15:04:42
【问题描述】:
由于速度慢,我使用 OpenCV 的人脸检测器和 C++ 进行 dlib 的人脸对齐,而不是 dlib 的检测器。
要使用 dlib 的人脸对齐,我必须将检测矩形传递给人脸对齐函数。
但是,即使 dlib 的检测器没问题,我也不能这样做。
因为std::vector<rectangle> dets在dlib's sample code中使用,所以我尝试如下分配,但我不能。
请注意,detect_rect 是 OpenCV 检测器的人脸检测矩形。
dets[0].l = detect_rect.left;
dets[0].t = detect_rect.top;
dets[0].r = detect_rect.right;
dets[0].b = detect_rect.bottom;
你能告诉我任何建议吗?
谢谢。
【问题讨论】:
-
dlib 使用 .l .t .r .b?你能解释一下它们必须如何解释吗?可能是与这些图像边界的距离(所以某种裁剪)?如果是,您将不得不使用:
.l = rect.x;.t = rect.y;.r = imageWidth - (rect.x+rect.width);.b = imageHeight - (rect.y+rect.height); -
Dlibs 人脸检测器并不慢。你确定你是在发布模式下运行的吗?
-
对不起,我可以自己解决!下一个代码有效!
rectangle rect(left, top, right, bottom);dets.push_back(rect);谢谢!