mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-10-12 23:39:50 +08:00
fix: synchronize depth filter list access
This commit is contained in:
@@ -880,6 +880,7 @@ class OBCameraNode {
|
|||||||
bool has_first_color_frame_ = false;
|
bool has_first_color_frame_ = false;
|
||||||
bool use_intra_process_ = false;
|
bool use_intra_process_ = false;
|
||||||
std::string cloud_frame_id_;
|
std::string cloud_frame_id_;
|
||||||
|
std::mutex depth_filter_mutex_;
|
||||||
std::vector<std::shared_ptr<ob::Filter>> depth_filter_list_;
|
std::vector<std::shared_ptr<ob::Filter>> depth_filter_list_;
|
||||||
std::vector<std::shared_ptr<ob::Filter>> color_filter_list_;
|
std::vector<std::shared_ptr<ob::Filter>> color_filter_list_;
|
||||||
std::vector<std::shared_ptr<ob::Filter>> left_color_filter_list_;
|
std::vector<std::shared_ptr<ob::Filter>> left_color_filter_list_;
|
||||||
|
|||||||
@@ -112,16 +112,23 @@ void OBCameraNode::publishDepthFiltersStatus() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto find_depth_filter = [this](const std::string &filter_name) -> std::shared_ptr<ob::Filter> {
|
std::vector<std::shared_ptr<ob::Filter>> depth_filters_snapshot;
|
||||||
|
{
|
||||||
|
std::lock_guard<std::mutex> depth_filter_lock(depth_filter_mutex_);
|
||||||
|
depth_filters_snapshot = depth_filter_list_;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto find_depth_filter =
|
||||||
|
[&depth_filters_snapshot, this](const std::string &filter_name) -> std::shared_ptr<ob::Filter> {
|
||||||
const auto normalized_name = normalizeDepthFilterName(filter_name);
|
const auto normalized_name = normalizeDepthFilterName(filter_name);
|
||||||
auto it = std::find_if(depth_filter_list_.begin(), depth_filter_list_.end(),
|
auto it = std::find_if(depth_filters_snapshot.begin(), depth_filters_snapshot.end(),
|
||||||
[&normalized_name](const auto &filter) {
|
[&normalized_name](const auto &filter) {
|
||||||
return normalizeDepthFilterName(filter->type()) ==
|
return normalizeDepthFilterName(filter->type()) ==
|
||||||
normalized_name ||
|
normalized_name ||
|
||||||
normalizeDepthFilterName(filter->getName()) ==
|
normalizeDepthFilterName(filter->getName()) ==
|
||||||
normalized_name;
|
normalized_name;
|
||||||
});
|
});
|
||||||
if (it == depth_filter_list_.end()) {
|
if (it == depth_filters_snapshot.end()) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
return *it;
|
return *it;
|
||||||
@@ -268,14 +275,14 @@ void OBCameraNode::publishDepthFiltersStatus() {
|
|||||||
OB_PERMISSION_READ_WRITE);
|
OB_PERMISSION_READ_WRITE);
|
||||||
|
|
||||||
std::vector<std::string> ordered_filter_names;
|
std::vector<std::string> ordered_filter_names;
|
||||||
ordered_filter_names.reserve(depth_filter_list_.size() + 2);
|
ordered_filter_names.reserve(depth_filters_snapshot.size() + 2);
|
||||||
auto append_unique_filter_name = [&ordered_filter_names](const std::string &filter_name) {
|
auto append_unique_filter_name = [&ordered_filter_names](const std::string &filter_name) {
|
||||||
if (std::find(ordered_filter_names.begin(), ordered_filter_names.end(), filter_name) ==
|
if (std::find(ordered_filter_names.begin(), ordered_filter_names.end(), filter_name) ==
|
||||||
ordered_filter_names.end()) {
|
ordered_filter_names.end()) {
|
||||||
ordered_filter_names.push_back(filter_name);
|
ordered_filter_names.push_back(filter_name);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
for (const auto &filter : depth_filter_list_) {
|
for (const auto &filter : depth_filters_snapshot) {
|
||||||
if (!filter) {
|
if (!filter) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -3381,6 +3388,7 @@ std::shared_ptr<ob::Frame> OBCameraNode::processDepthFrameFilter(
|
|||||||
if (frame == nullptr || frame->getType() != OB_FRAME_DEPTH) {
|
if (frame == nullptr || frame->getType() != OB_FRAME_DEPTH) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
std::lock_guard<std::mutex> depth_filter_lock(depth_filter_mutex_);
|
||||||
for (size_t i = 0; i < depth_filter_list_.size(); i++) {
|
for (size_t i = 0; i < depth_filter_list_.size(); i++) {
|
||||||
auto filter = depth_filter_list_[i];
|
auto filter = depth_filter_list_[i];
|
||||||
CHECK_NOTNULL(filter.get());
|
CHECK_NOTNULL(filter.get());
|
||||||
@@ -4771,12 +4779,16 @@ void OBCameraNode::setFilterCallback(const std::shared_ptr<SetFilter ::Request>
|
|||||||
std::shared_ptr<SetFilter ::Response> &response) {
|
std::shared_ptr<SetFilter ::Response> &response) {
|
||||||
try {
|
try {
|
||||||
const auto normalized_request_filter_name = normalizeDepthFilterName(request->filter_name);
|
const auto normalized_request_filter_name = normalizeDepthFilterName(request->filter_name);
|
||||||
const bool in_recommended_filter_list =
|
bool in_recommended_filter_list = false;
|
||||||
std::find_if(depth_filter_list_.begin(), depth_filter_list_.end(),
|
{
|
||||||
[&normalized_request_filter_name](const auto &filter) {
|
std::lock_guard<std::mutex> depth_filter_lock(depth_filter_mutex_);
|
||||||
return normalizeDepthFilterName(filter->type()) ==
|
in_recommended_filter_list =
|
||||||
normalized_request_filter_name;
|
std::find_if(depth_filter_list_.begin(), depth_filter_list_.end(),
|
||||||
}) != depth_filter_list_.end();
|
[&normalized_request_filter_name](const auto &filter) {
|
||||||
|
return normalizeDepthFilterName(filter->type()) ==
|
||||||
|
normalized_request_filter_name;
|
||||||
|
}) != depth_filter_list_.end();
|
||||||
|
}
|
||||||
const bool is_noise_removal_filter = normalized_request_filter_name == "NoiseRemovalFilter";
|
const bool is_noise_removal_filter = normalized_request_filter_name == "NoiseRemovalFilter";
|
||||||
const bool is_hardware_noise_removal =
|
const bool is_hardware_noise_removal =
|
||||||
normalized_request_filter_name == "HardwareNoiseRemovalFilter";
|
normalized_request_filter_name == "HardwareNoiseRemovalFilter";
|
||||||
@@ -4801,15 +4813,16 @@ void OBCameraNode::setFilterCallback(const std::shared_ptr<SetFilter ::Request>
|
|||||||
|
|
||||||
RCLCPP_INFO_STREAM(logger_, "filter_name: " << request->filter_name << " filter_enable: "
|
RCLCPP_INFO_STREAM(logger_, "filter_name: " << request->filter_name << " filter_enable: "
|
||||||
<< (request->filter_enable ? "true" : "false"));
|
<< (request->filter_enable ? "true" : "false"));
|
||||||
auto it = std::remove_if(depth_filter_list_.begin(), depth_filter_list_.end(),
|
|
||||||
[&normalized_request_filter_name](const std::shared_ptr<ob::Filter> &filter) {
|
|
||||||
return normalizeDepthFilterName(filter->getName()) ==
|
|
||||||
normalized_request_filter_name ||
|
|
||||||
normalizeDepthFilterName(filter->type()) ==
|
|
||||||
normalized_request_filter_name;
|
|
||||||
});
|
|
||||||
depth_filter_list_.erase(it, depth_filter_list_.end());
|
|
||||||
if (normalized_request_filter_name == "DecimationFilter") {
|
if (normalized_request_filter_name == "DecimationFilter") {
|
||||||
|
std::unique_lock<std::mutex> depth_filter_lock(depth_filter_mutex_);
|
||||||
|
auto it = std::remove_if(depth_filter_list_.begin(), depth_filter_list_.end(),
|
||||||
|
[&normalized_request_filter_name](const std::shared_ptr<ob::Filter> &filter) {
|
||||||
|
return normalizeDepthFilterName(filter->getName()) ==
|
||||||
|
normalized_request_filter_name ||
|
||||||
|
normalizeDepthFilterName(filter->type()) ==
|
||||||
|
normalized_request_filter_name;
|
||||||
|
});
|
||||||
|
depth_filter_list_.erase(it, depth_filter_list_.end());
|
||||||
auto decimation_filter = std::make_shared<ob::DecimationFilter>();
|
auto decimation_filter = std::make_shared<ob::DecimationFilter>();
|
||||||
decimation_filter->enable(request->filter_enable);
|
decimation_filter->enable(request->filter_enable);
|
||||||
depth_filter_list_.push_back(decimation_filter);
|
depth_filter_list_.push_back(decimation_filter);
|
||||||
@@ -4837,6 +4850,15 @@ void OBCameraNode::setFilterCallback(const std::shared_ptr<SetFilter ::Request>
|
|||||||
enable_decimation_filter_ = request->filter_enable;
|
enable_decimation_filter_ = request->filter_enable;
|
||||||
|
|
||||||
} else if (normalized_request_filter_name == "HDRMerge") {
|
} else if (normalized_request_filter_name == "HDRMerge") {
|
||||||
|
std::unique_lock<std::mutex> depth_filter_lock(depth_filter_mutex_);
|
||||||
|
auto it = std::remove_if(depth_filter_list_.begin(), depth_filter_list_.end(),
|
||||||
|
[&normalized_request_filter_name](const std::shared_ptr<ob::Filter> &filter) {
|
||||||
|
return normalizeDepthFilterName(filter->getName()) ==
|
||||||
|
normalized_request_filter_name ||
|
||||||
|
normalizeDepthFilterName(filter->type()) ==
|
||||||
|
normalized_request_filter_name;
|
||||||
|
});
|
||||||
|
depth_filter_list_.erase(it, depth_filter_list_.end());
|
||||||
auto hdr_merge_filter = std::make_shared<ob::HdrMerge>();
|
auto hdr_merge_filter = std::make_shared<ob::HdrMerge>();
|
||||||
hdr_merge_filter->enable(request->filter_enable);
|
hdr_merge_filter->enable(request->filter_enable);
|
||||||
depth_filter_list_.push_back(hdr_merge_filter);
|
depth_filter_list_.push_back(hdr_merge_filter);
|
||||||
@@ -4866,6 +4888,15 @@ void OBCameraNode::setFilterCallback(const std::shared_ptr<SetFilter ::Request>
|
|||||||
enable_hdr_merge_ = request->filter_enable;
|
enable_hdr_merge_ = request->filter_enable;
|
||||||
|
|
||||||
} else if (normalized_request_filter_name == "SequenceIdFilter") {
|
} else if (normalized_request_filter_name == "SequenceIdFilter") {
|
||||||
|
std::unique_lock<std::mutex> depth_filter_lock(depth_filter_mutex_);
|
||||||
|
auto it = std::remove_if(depth_filter_list_.begin(), depth_filter_list_.end(),
|
||||||
|
[&normalized_request_filter_name](const std::shared_ptr<ob::Filter> &filter) {
|
||||||
|
return normalizeDepthFilterName(filter->getName()) ==
|
||||||
|
normalized_request_filter_name ||
|
||||||
|
normalizeDepthFilterName(filter->type()) ==
|
||||||
|
normalized_request_filter_name;
|
||||||
|
});
|
||||||
|
depth_filter_list_.erase(it, depth_filter_list_.end());
|
||||||
auto sequenced_filter = std::make_shared<ob::SequenceIdFilter>();
|
auto sequenced_filter = std::make_shared<ob::SequenceIdFilter>();
|
||||||
sequenced_filter->enable(request->filter_enable);
|
sequenced_filter->enable(request->filter_enable);
|
||||||
depth_filter_list_.push_back(sequenced_filter);
|
depth_filter_list_.push_back(sequenced_filter);
|
||||||
@@ -4882,6 +4913,15 @@ void OBCameraNode::setFilterCallback(const std::shared_ptr<SetFilter ::Request>
|
|||||||
enable_sequence_id_filter_ = request->filter_enable;
|
enable_sequence_id_filter_ = request->filter_enable;
|
||||||
|
|
||||||
} else if (normalized_request_filter_name == "ThresholdFilter") {
|
} else if (normalized_request_filter_name == "ThresholdFilter") {
|
||||||
|
std::unique_lock<std::mutex> depth_filter_lock(depth_filter_mutex_);
|
||||||
|
auto it = std::remove_if(depth_filter_list_.begin(), depth_filter_list_.end(),
|
||||||
|
[&normalized_request_filter_name](const std::shared_ptr<ob::Filter> &filter) {
|
||||||
|
return normalizeDepthFilterName(filter->getName()) ==
|
||||||
|
normalized_request_filter_name ||
|
||||||
|
normalizeDepthFilterName(filter->type()) ==
|
||||||
|
normalized_request_filter_name;
|
||||||
|
});
|
||||||
|
depth_filter_list_.erase(it, depth_filter_list_.end());
|
||||||
auto threshold_filter = std::make_shared<ob::ThresholdFilter>();
|
auto threshold_filter = std::make_shared<ob::ThresholdFilter>();
|
||||||
threshold_filter->enable(request->filter_enable);
|
threshold_filter->enable(request->filter_enable);
|
||||||
depth_filter_list_.push_back(threshold_filter);
|
depth_filter_list_.push_back(threshold_filter);
|
||||||
@@ -4958,6 +4998,15 @@ void OBCameraNode::setFilterCallback(const std::shared_ptr<SetFilter ::Request>
|
|||||||
}
|
}
|
||||||
enable_hardware_noise_removal_filter_ = request->filter_enable;
|
enable_hardware_noise_removal_filter_ = request->filter_enable;
|
||||||
} else if (normalized_request_filter_name == "SpatialAdvancedFilter") {
|
} else if (normalized_request_filter_name == "SpatialAdvancedFilter") {
|
||||||
|
std::unique_lock<std::mutex> depth_filter_lock(depth_filter_mutex_);
|
||||||
|
auto it = std::remove_if(depth_filter_list_.begin(), depth_filter_list_.end(),
|
||||||
|
[&normalized_request_filter_name](const std::shared_ptr<ob::Filter> &filter) {
|
||||||
|
return normalizeDepthFilterName(filter->getName()) ==
|
||||||
|
normalized_request_filter_name ||
|
||||||
|
normalizeDepthFilterName(filter->type()) ==
|
||||||
|
normalized_request_filter_name;
|
||||||
|
});
|
||||||
|
depth_filter_list_.erase(it, depth_filter_list_.end());
|
||||||
auto spatial_filter = std::make_shared<ob::SpatialAdvancedFilter>();
|
auto spatial_filter = std::make_shared<ob::SpatialAdvancedFilter>();
|
||||||
spatial_filter->enable(request->filter_enable);
|
spatial_filter->enable(request->filter_enable);
|
||||||
depth_filter_list_.push_back(spatial_filter);
|
depth_filter_list_.push_back(spatial_filter);
|
||||||
@@ -4984,6 +5033,15 @@ void OBCameraNode::setFilterCallback(const std::shared_ptr<SetFilter ::Request>
|
|||||||
}
|
}
|
||||||
enable_spatial_filter_ = request->filter_enable;
|
enable_spatial_filter_ = request->filter_enable;
|
||||||
} else if (normalized_request_filter_name == "TemporalFilter") {
|
} else if (normalized_request_filter_name == "TemporalFilter") {
|
||||||
|
std::unique_lock<std::mutex> depth_filter_lock(depth_filter_mutex_);
|
||||||
|
auto it = std::remove_if(depth_filter_list_.begin(), depth_filter_list_.end(),
|
||||||
|
[&normalized_request_filter_name](const std::shared_ptr<ob::Filter> &filter) {
|
||||||
|
return normalizeDepthFilterName(filter->getName()) ==
|
||||||
|
normalized_request_filter_name ||
|
||||||
|
normalizeDepthFilterName(filter->type()) ==
|
||||||
|
normalized_request_filter_name;
|
||||||
|
});
|
||||||
|
depth_filter_list_.erase(it, depth_filter_list_.end());
|
||||||
auto temporal_filter = std::make_shared<ob::TemporalFilter>();
|
auto temporal_filter = std::make_shared<ob::TemporalFilter>();
|
||||||
temporal_filter->enable(request->filter_enable);
|
temporal_filter->enable(request->filter_enable);
|
||||||
depth_filter_list_.push_back(temporal_filter);
|
depth_filter_list_.push_back(temporal_filter);
|
||||||
@@ -5002,6 +5060,15 @@ void OBCameraNode::setFilterCallback(const std::shared_ptr<SetFilter ::Request>
|
|||||||
}
|
}
|
||||||
enable_temporal_filter_ = request->filter_enable;
|
enable_temporal_filter_ = request->filter_enable;
|
||||||
} else if (normalized_request_filter_name == "SpatialFastFilter") {
|
} else if (normalized_request_filter_name == "SpatialFastFilter") {
|
||||||
|
std::unique_lock<std::mutex> depth_filter_lock(depth_filter_mutex_);
|
||||||
|
auto it = std::remove_if(depth_filter_list_.begin(), depth_filter_list_.end(),
|
||||||
|
[&normalized_request_filter_name](const std::shared_ptr<ob::Filter> &filter) {
|
||||||
|
return normalizeDepthFilterName(filter->getName()) ==
|
||||||
|
normalized_request_filter_name ||
|
||||||
|
normalizeDepthFilterName(filter->type()) ==
|
||||||
|
normalized_request_filter_name;
|
||||||
|
});
|
||||||
|
depth_filter_list_.erase(it, depth_filter_list_.end());
|
||||||
auto spatial_fast_filter = std::make_shared<ob::SpatialFastFilter>();
|
auto spatial_fast_filter = std::make_shared<ob::SpatialFastFilter>();
|
||||||
spatial_fast_filter->enable(request->filter_enable);
|
spatial_fast_filter->enable(request->filter_enable);
|
||||||
depth_filter_list_.push_back(spatial_fast_filter);
|
depth_filter_list_.push_back(spatial_fast_filter);
|
||||||
@@ -5020,6 +5087,15 @@ void OBCameraNode::setFilterCallback(const std::shared_ptr<SetFilter ::Request>
|
|||||||
enable_spatial_fast_filter_ = request->filter_enable;
|
enable_spatial_fast_filter_ = request->filter_enable;
|
||||||
|
|
||||||
} else if (normalized_request_filter_name == "SpatialModerateFilter") {
|
} else if (normalized_request_filter_name == "SpatialModerateFilter") {
|
||||||
|
std::unique_lock<std::mutex> depth_filter_lock(depth_filter_mutex_);
|
||||||
|
auto it = std::remove_if(depth_filter_list_.begin(), depth_filter_list_.end(),
|
||||||
|
[&normalized_request_filter_name](const std::shared_ptr<ob::Filter> &filter) {
|
||||||
|
return normalizeDepthFilterName(filter->getName()) ==
|
||||||
|
normalized_request_filter_name ||
|
||||||
|
normalizeDepthFilterName(filter->type()) ==
|
||||||
|
normalized_request_filter_name;
|
||||||
|
});
|
||||||
|
depth_filter_list_.erase(it, depth_filter_list_.end());
|
||||||
auto spatial_moderate_filter = std::make_shared<ob::SpatialModerateFilter>();
|
auto spatial_moderate_filter = std::make_shared<ob::SpatialModerateFilter>();
|
||||||
spatial_moderate_filter->enable(request->filter_enable);
|
spatial_moderate_filter->enable(request->filter_enable);
|
||||||
depth_filter_list_.push_back(spatial_moderate_filter);
|
depth_filter_list_.push_back(spatial_moderate_filter);
|
||||||
@@ -5043,16 +5119,43 @@ void OBCameraNode::setFilterCallback(const std::shared_ptr<SetFilter ::Request>
|
|||||||
}
|
}
|
||||||
enable_spatial_moderate_filter_ = request->filter_enable;
|
enable_spatial_moderate_filter_ = request->filter_enable;
|
||||||
} else if (normalized_request_filter_name == "FalsePositiveFilter") {
|
} else if (normalized_request_filter_name == "FalsePositiveFilter") {
|
||||||
|
std::unique_lock<std::mutex> depth_filter_lock(depth_filter_mutex_);
|
||||||
|
auto it = std::remove_if(depth_filter_list_.begin(), depth_filter_list_.end(),
|
||||||
|
[&normalized_request_filter_name](const std::shared_ptr<ob::Filter> &filter) {
|
||||||
|
return normalizeDepthFilterName(filter->getName()) ==
|
||||||
|
normalized_request_filter_name ||
|
||||||
|
normalizeDepthFilterName(filter->type()) ==
|
||||||
|
normalized_request_filter_name;
|
||||||
|
});
|
||||||
|
depth_filter_list_.erase(it, depth_filter_list_.end());
|
||||||
auto false_positive_filter = std::make_shared<ob::FalsePositiveFilter>();
|
auto false_positive_filter = std::make_shared<ob::FalsePositiveFilter>();
|
||||||
false_positive_filter->enable(request->filter_enable);
|
false_positive_filter->enable(request->filter_enable);
|
||||||
depth_filter_list_.push_back(false_positive_filter);
|
depth_filter_list_.push_back(false_positive_filter);
|
||||||
enable_false_positive_filter_ = request->filter_enable;
|
enable_false_positive_filter_ = request->filter_enable;
|
||||||
} else if (normalized_request_filter_name == "MgcNoiseRemovalFilter") {
|
} else if (normalized_request_filter_name == "MgcNoiseRemovalFilter") {
|
||||||
|
std::unique_lock<std::mutex> depth_filter_lock(depth_filter_mutex_);
|
||||||
|
auto it = std::remove_if(depth_filter_list_.begin(), depth_filter_list_.end(),
|
||||||
|
[&normalized_request_filter_name](const std::shared_ptr<ob::Filter> &filter) {
|
||||||
|
return normalizeDepthFilterName(filter->getName()) ==
|
||||||
|
normalized_request_filter_name ||
|
||||||
|
normalizeDepthFilterName(filter->type()) ==
|
||||||
|
normalized_request_filter_name;
|
||||||
|
});
|
||||||
|
depth_filter_list_.erase(it, depth_filter_list_.end());
|
||||||
auto mgc_filter = std::make_shared<ob::MgcNoiseRemovalFilter>();
|
auto mgc_filter = std::make_shared<ob::MgcNoiseRemovalFilter>();
|
||||||
mgc_filter->enable(request->filter_enable);
|
mgc_filter->enable(request->filter_enable);
|
||||||
depth_filter_list_.push_back(mgc_filter);
|
depth_filter_list_.push_back(mgc_filter);
|
||||||
enable_mgc_noise_removal_filter_ = request->filter_enable;
|
enable_mgc_noise_removal_filter_ = request->filter_enable;
|
||||||
} else if (normalized_request_filter_name == "LutNoiseRemovalFilter") {
|
} else if (normalized_request_filter_name == "LutNoiseRemovalFilter") {
|
||||||
|
std::unique_lock<std::mutex> depth_filter_lock(depth_filter_mutex_);
|
||||||
|
auto it = std::remove_if(depth_filter_list_.begin(), depth_filter_list_.end(),
|
||||||
|
[&normalized_request_filter_name](const std::shared_ptr<ob::Filter> &filter) {
|
||||||
|
return normalizeDepthFilterName(filter->getName()) ==
|
||||||
|
normalized_request_filter_name ||
|
||||||
|
normalizeDepthFilterName(filter->type()) ==
|
||||||
|
normalized_request_filter_name;
|
||||||
|
});
|
||||||
|
depth_filter_list_.erase(it, depth_filter_list_.end());
|
||||||
auto lut_filter = std::make_shared<ob::LutNoiseRemovalFilter>();
|
auto lut_filter = std::make_shared<ob::LutNoiseRemovalFilter>();
|
||||||
lut_filter->enable(request->filter_enable);
|
lut_filter->enable(request->filter_enable);
|
||||||
depth_filter_list_.push_back(lut_filter);
|
depth_filter_list_.push_back(lut_filter);
|
||||||
@@ -5069,7 +5172,12 @@ void OBCameraNode::setFilterCallback(const std::shared_ptr<SetFilter ::Request>
|
|||||||
"LutNoiseRemovalFilter");
|
"LutNoiseRemovalFilter");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (auto &filter : depth_filter_list_) {
|
std::vector<std::shared_ptr<ob::Filter>> depth_filters_snapshot;
|
||||||
|
{
|
||||||
|
std::lock_guard<std::mutex> depth_filter_lock(depth_filter_mutex_);
|
||||||
|
depth_filters_snapshot = depth_filter_list_;
|
||||||
|
}
|
||||||
|
for (auto &filter : depth_filters_snapshot) {
|
||||||
std::cout << " - " << filter->getName() << ": "
|
std::cout << " - " << filter->getName() << ": "
|
||||||
<< (filter->isEnabled() ? "enabled" : "disabled") << std::endl;
|
<< (filter->isEnabled() ? "enabled" : "disabled") << std::endl;
|
||||||
auto configSchemaVec = filter->getConfigSchemaVec();
|
auto configSchemaVec = filter->getConfigSchemaVec();
|
||||||
|
|||||||
Reference in New Issue
Block a user