ReUseX  0.0.5
3D Point Cloud Processing for Building Reuse
Loading...
Searching...
No Matches
segment_instances.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2025 Povl Filip Sonne-Frederiksen
2// SPDX-License-Identifier: GPL-3.0-or-later
3
4#pragma once
5
6#include "reusex/types.hpp"
7#include <atomic>
8#include <map>
9#include <set>
10
11namespace reusex::geometry {
12
23
26
28 float cluster_tolerance = 0.5F;
29
32
34 int max_cluster_size = 1000000;
35
42 std::set<uint32_t> labels_to_process;
43
45 const std::atomic_bool *cancel_token = nullptr;
46};
47
55
57 std::map<uint32_t, uint32_t> instance_to_semantic;
58
60 std::map<uint32_t, size_t> instance_sizes;
61};
62
84
92
93} // namespace reusex::geometry
auto segment_instances(const SegmentInstancesRequest &request) -> SegmentInstancesResult
Segment point cloud into instances using Euclidean clustering.
auto segment_instances_impl(const SegmentInstancesRequest &request) -> SegmentInstancesResult
Implementation function for segment_instances.
typename CloudL::Ptr CloudLPtr
Definition types.hpp:35
typename CloudL::ConstPtr CloudLConstPtr
Definition types.hpp:36
typename Cloud::ConstPtr CloudConstPtr
Definition types.hpp:28
Request structure for instance segmentation via Euclidean clustering.
const std::atomic_bool * cancel_token
Optional cancellation token for long-running operations.
float cluster_tolerance
Euclidean distance threshold for clustering (meters).
std::set< uint32_t > labels_to_process
Optional filter for specific semantic labels.
int min_cluster_size
Minimum points per instance cluster.
CloudConstPtr cloud
Input point cloud (spatial positions).
CloudLConstPtr semantic_labels
Semantic class labels (same size as cloud).
int max_cluster_size
Maximum points per instance cluster.
Result structure for instance segmentation.
std::map< uint32_t, uint32_t > instance_to_semantic
Mapping from instance ID to semantic class ID.
CloudLPtr instance_labels
Instance-labeled cloud (same size as input cloud) Labels are sequential: 1, 2, 3, ....
std::map< uint32_t, size_t > instance_sizes
Mapping from instance ID to point count.