[FIX] auto skin calibration in game scene

This commit is contained in:
Sem van der Hoeven
2021-06-18 10:49:59 +02:00
parent ce0a1f3da7
commit 01570d8045
4 changed files with 57 additions and 24 deletions

View File

@@ -56,10 +56,8 @@ namespace computervision
if (!skin_calibrated)
{
skin_detector.calibrate(input_frame);
skin_calibrated = true;
hand_calibrator.SetSkinCalibration(skin_calibrated);
time = 0;
if (is_main_skin_detection_region)
skin_timer_callback();
}
}
@@ -135,6 +133,8 @@ namespace computervision
{
std::cout << "calibrating skin " << region_id << std::endl;
hand_calibrator.SetSkinCalibration(true);
skin_calibrated = true;
time = 0;
return skin_detector.calibrateAndReturn(frame_out);
}
@@ -143,6 +143,8 @@ namespace computervision
std::cout << "setting skin " << region_id << std::endl;
skin_detector.setTresholds(tresholds);
hand_calibrator.SetSkinCalibration(true);
skin_calibrated = true;
time = 0;
}
void HandDetectRegion::UpdateTime(float delta_time)

View File

@@ -39,6 +39,8 @@ namespace computervision
void setSkinTresholds(std::vector<int>& tresholds);
void UpdateTime(float delta_time);
void SetMainSkinDetecRegion(bool val) { is_main_skin_detection_region = val; };
void SetSkinTimerCallback(std::function<void()> fun) { skin_timer_callback = fun; };
private:
@@ -61,6 +63,8 @@ namespace computervision
bool background_calibrated = false;
bool skin_calibrated = false;
bool is_main_skin_detection_region = false;
std::function<void()> skin_timer_callback;