Group landmarks points together with visibility in a single structure

This commit is contained in:
Maksym Walczak 2022-08-11 13:56:49 +02:00
parent 17d38c9c5a
commit 0c292576f9
2 changed files with 12 additions and 11 deletions

View File

@ -153,12 +153,8 @@ bool PoseTracking::processFrame(const cv_wrapper::Mat& inputRGB8Bit) {
return mImplementation->processFrame(frame); return mImplementation->processFrame(frame);
} }
cv_wrapper::Point3f* PoseTracking::lastDetectedLandmarks() { PoseTracking::PoseLandmarks PoseTracking::lastDetectedLandmarks() {
return mImplementation->lastDetectedLandmarks(); return {mImplementation->lastDetectedLandmarks(), mImplementation->landmarksVisibility()};
}
float* PoseTracking::lastLandmarksVisibility() {
return mImplementation->landmarksVisibility();
} }
cv_wrapper::Mat PoseTracking::lastSegmentedFrame() { cv_wrapper::Mat PoseTracking::lastSegmentedFrame() {
@ -171,5 +167,4 @@ PoseTracking::~PoseTracking()
{ {
delete mImplementation; delete mImplementation;
} }
} // namespace nimagna } // namespace nimagna

View File

@ -62,9 +62,16 @@ struct Mat {
}; };
} // namespace cv_wrapper } // namespace cv_wrapper
class DLLEXPORT PoseTracking { class DLLEXPORT PoseTracking {
public: public:
struct PoseLandmarks {
PoseLandmarks(cv_wrapper::Point3f* points, float* visibility) : points(points), visibility(visibility) {}
static constexpr size_t kLandmarksCount = 33u; static constexpr size_t kLandmarksCount = 33u;
const cv_wrapper::Point3f* points;
const float* visibility;
};
enum LandmarkNames { enum LandmarkNames {
NOSE = 0, NOSE = 0,
LEFT_EYE_INNER, LEFT_EYE_INNER,
@ -99,7 +106,7 @@ class DLLEXPORT PoseTracking {
RIGHT_HEEL, RIGHT_HEEL,
LEFT_FOOT_INDEX, LEFT_FOOT_INDEX,
RIGHT_FOOT_INDEX, RIGHT_FOOT_INDEX,
COUNT = kLandmarksCount COUNT = PoseLandmarks::kLandmarksCount
}; };
PoseTracking(const char* calculatorGraphConfigFile); PoseTracking(const char* calculatorGraphConfigFile);
@ -107,8 +114,7 @@ class DLLEXPORT PoseTracking {
bool processFrame(const cv_wrapper::Mat& inputRGB8Bit); bool processFrame(const cv_wrapper::Mat& inputRGB8Bit);
cv_wrapper::Mat lastSegmentedFrame(); cv_wrapper::Mat lastSegmentedFrame();
cv_wrapper::Point3f* lastDetectedLandmarks(); PoseTracking::PoseLandmarks lastDetectedLandmarks();
float* lastLandmarksVisibility();
private: private:
PoseTrackingImpl* mImplementation; PoseTrackingImpl* mImplementation;