fix(depth): add disparity limit
This commit is contained in:
parent
fbd416324e
commit
e2478c644a
|
@ -21,6 +21,9 @@ MYNTEYE_BEGIN_NAMESPACE
|
||||||
|
|
||||||
const char DepthProcessor::NAME[] = "DepthProcessor";
|
const char DepthProcessor::NAME[] = "DepthProcessor";
|
||||||
|
|
||||||
|
const int DISPARITY_MIN = 0;
|
||||||
|
const int DISPARITY_MAX = 64;
|
||||||
|
|
||||||
DepthProcessor::DepthProcessor(
|
DepthProcessor::DepthProcessor(
|
||||||
std::shared_ptr<struct camera_calib_info_pair> calib_infos,
|
std::shared_ptr<struct camera_calib_info_pair> calib_infos,
|
||||||
std::int32_t proc_period)
|
std::int32_t proc_period)
|
||||||
|
@ -54,10 +57,12 @@ bool DepthProcessor::OnProcess(
|
||||||
for (int i = 0; i < rows; i++) {
|
for (int i = 0; i < rows; i++) {
|
||||||
for (int j = 0; j < cols; j++) {
|
for (int j = 0; j < cols; j++) {
|
||||||
float disparity_value = input->value.at<float>(i, j);
|
float disparity_value = input->value.at<float>(i, j);
|
||||||
|
if (disparity_value > DISPARITY_MAX && disparity_value > DISPARITY_MIN) {
|
||||||
float depth = calib_infos_->T_mul_f / disparity_value;
|
float depth = calib_infos_->T_mul_f / disparity_value;
|
||||||
depth_mat.at<ushort>(i, j) = depth * 1000;
|
depth_mat.at<ushort>(i, j) = depth * 1000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
output->value = depth_mat;
|
output->value = depth_mat;
|
||||||
output->id = input->id;
|
output->id = input->id;
|
||||||
output->data = input->data;
|
output->data = input->data;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user