feat: add depth filter status name and parameter mapping functions

This commit is contained in:
ob-yalian
2026-04-15 11:18:35 +08:00
parent 75afca130e
commit b7e948860e
+30 -2
View File
@@ -45,6 +45,34 @@ std::string OBCameraNode::normalizeDepthFilterName(const std::string &filter_nam
return filter_name; return filter_name;
} }
namespace {
std::string getDepthFilterStatusName(const std::string &filter_name) {
if (filter_name == "SpatialAdvancedFilter") {
return "SpatialFilter";
}
if (filter_name == "DisparityTransform") {
return "DisparityToDepth";
}
return filter_name;
}
std::string getDepthFilterStatusParamName(const std::string &filter_name,
const std::string &param_name) {
if (filter_name == "SpatialAdvancedFilter" && param_name == "disp_diff") {
return "diff_threshold";
}
if (filter_name == "TemporalFilter" && param_name == "diff_scale") {
return "diff_threshold";
}
if (filter_name == "DecimationFilter" && param_name == "decimate") {
return "scale";
}
return param_name;
}
} // namespace
void OBCameraNode::appendDepthFilterParam(DepthFilterState &filter_state, const std::string &name, void OBCameraNode::appendDepthFilterParam(DepthFilterState &filter_state, const std::string &name,
const std::string &value) { const std::string &value) {
orbbec_camera_msgs::msg::DepthFilterParam param; orbbec_camera_msgs::msg::DepthFilterParam param;
@@ -57,7 +85,7 @@ DepthFilterState OBCameraNode::buildDepthFilterState(
const std::string &filter_name, bool enabled, const std::shared_ptr<ob::Filter> &filter) const { const std::string &filter_name, bool enabled, const std::shared_ptr<ob::Filter> &filter) const {
const auto normalized_filter_name = normalizeDepthFilterName(filter_name); const auto normalized_filter_name = normalizeDepthFilterName(filter_name);
DepthFilterState filter_state; DepthFilterState filter_state;
filter_state.filter_name = normalized_filter_name; filter_state.filter_name = getDepthFilterStatusName(normalized_filter_name);
filter_state.enabled = enabled; filter_state.enabled = enabled;
auto to_param_value = [](const auto &value) { auto to_param_value = [](const auto &value) {
std::ostringstream ss; std::ostringstream ss;
@@ -99,7 +127,7 @@ DepthFilterState OBCameraNode::buildDepthFilterState(
continue; continue;
} }
appendDepthFilterParam( appendDepthFilterParam(
filter_state, config_schema.name, filter_state, getDepthFilterStatusParamName(normalized_filter_name, config_schema.name),
format_filter_config_value(config_schema, filter->getConfigValue(config_schema.name))); format_filter_config_value(config_schema, filter->getConfigValue(config_schema.name)));
} }
} catch (const std::exception &) { } catch (const std::exception &) {