Я использую детектор лица OpenCV с C++ для выравнивания лица dlib вместо детектора dlib из-за медленной скорости.
Чтобы использовать выравнивание лица dlib, я должен передать прямоугольник обнаружения в функцию выравнивания лица.
Однако я не могу этого сделать, хотя детектор dlib в порядке.
Потому что std::vector<rectangle> dets
используется в dlib's sample code, я попытался назначить, как показано ниже, но я не мог.
Обратите внимание, что detect_rect
представляет собой прямоугольник обнаружения лица детектором OpenCV.
Преобразование прямоугольника OpenCV в прямоугольник dlib?
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); ' – Micka
Длинный детектор лица не медленный. Вы уверены, что работаете в режиме выпуска? –
Извините, я мог бы решить сам! Следующие коды работают! 'rectangle rect (слева, сверху, справа, внизу),' 'dets.push_back (rect);' Спасибо! –