由于速度慢,我使用 OpenCV 的人脸检测器和 C++ 进行 dlib 的人脸对齐,而不是 dlib 的检测器。
要使用 dlib 的人脸对齐,我必须将检测矩形传递给人脸对齐函数。
但是,即使 dlib 的检测器没问题,我也不能这样做。
因为 dlib 的示例代码 中使用了 std::vector<rectangle> dets
,所以我尝试如下分配,但我不能。
请注意, 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;
你能告诉我任何建议吗?
谢谢你。
原文由 univ_student 发布,翻译遵循 CC BY-SA 4.0 许可协议
需要注意的是,OpenCV 使用以下定义:
dlib 的定义包括所有边界,因此转换函数必须注意将右下角移动 1。
这是我的 Utils.h 中的一个函数
反之亦然: