|
ReUseX
0.0.5
3D Point Cloud Processing for Building Reuse
|
Parameters for Multi-View Stereo dense reconstruction (OpenMVS). More...
#include <densify.hpp>

Public Attributes | |
| std::string | output_name = "dense" |
| Name to save the dense point cloud under in ProjectDB. | |
| std::string | seed_cloud_name = "cloud" |
| Source LiDAR cloud (name in ProjectDB) used to seed PatchMatch and the downstream 3D-point views. | |
| int | seed_max_points = 100'000 |
| Sub-sample stride when copying the seed cloud (uniform). | |
| int | resolution_level = 1 |
| 0 = full image resolution, 1 = half, 2 = quarter, ... | |
| int | max_resolution = 2000 |
| Upper bound on max(width, height) for any image. | |
| int | min_resolution = 640 |
| Lower bound on max(width, height). Images below this are not used. | |
| int | num_views = 4 |
| Number of neighbor views considered per image during depth-map estimation. | |
| int | frame_stride = 1 |
| Per-frame stride when subsampling RTABMap frames. | |
| bool | geometric_consistency = true |
| Geometric consistency between neighboring depth maps. | |
| int | gpu_index = -2 |
| CUDA device selection for PatchMatch depth-map estimation. | |
| int | max_threads = 0 |
| Maximum concurrent OpenMP threads used during depth-map estimation. | |
| bool | outlier_filter = true |
| Apply PCL's statistical outlier removal to the merged output after fusion. | |
| int | outlier_mean_k = 50 |
| double | outlier_stddev_thresh = 2.0 |
| bool | bbox_clip = true |
| If the seed cloud (LiDAR) is present, clip the dense output to its percentile-based bounding box expanded by bbox_margin (relative expansion: 0.25 = 25% on each side). | |
| double | bbox_margin = 0.25 |
| int | chunk_size = 0 |
| Process at most this many frames per dense-reconstruction call, then merge the resulting point clouds. | |
| int | max_fuse_points = 0 |
| Cap on the number of points kept after fusion (OPTDENSE.nMaxPointsFuse). | |
Parameters for Multi-View Stereo dense reconstruction (OpenMVS).
Definition at line 16 of file densify.hpp.
| bool reusex::geometry::DensifyParams::bbox_clip = true |
If the seed cloud (LiDAR) is present, clip the dense output to its percentile-based bounding box expanded by bbox_margin (relative expansion: 0.25 = 25% on each side).
This catches the large triangulation-failure patches that SOR misses — they sit far outside the LiDAR volume, so a generous box around the LiDAR extent removes them while keeping anything plausibly part of the scene.
Definition at line 82 of file densify.hpp.
| double reusex::geometry::DensifyParams::bbox_margin = 0.25 |
Definition at line 83 of file densify.hpp.
| int reusex::geometry::DensifyParams::chunk_size = 0 |
Process at most this many frames per dense-reconstruction call, then merge the resulting point clouds.
This is the only way to bound peak fusion RAM without lowering image resolution — fusion holds every depth map in memory at once, so smaller chunks → smaller fusion working set. Successive chunks are consecutive frames from the (frame_stride-filtered) sensor-frame list. 0 = disabled, fuse the whole scene at once. Reasonable values for 640×480 indoor scans are 30–80 frames depending on available RAM.
Definition at line 93 of file densify.hpp.
| int reusex::geometry::DensifyParams::frame_stride = 1 |
Per-frame stride when subsampling RTABMap frames.
1 = use every frame, 2 = every other, etc. Use this to bound runtime on dense capture sessions.
Definition at line 44 of file densify.hpp.
| bool reusex::geometry::DensifyParams::geometric_consistency = true |
Geometric consistency between neighboring depth maps.
Slower but produces cleaner output.
Definition at line 48 of file densify.hpp.
| int reusex::geometry::DensifyParams::gpu_index = -2 |
CUDA device selection for PatchMatch depth-map estimation.
-2 = force CPU PatchMatch (safest, no CUDA init needed) -1 = let OpenMVS pick the best GPU >=0 = use the specified CUDA device index Default is -2 because some build environments expose CUDA at link time but cuInit() fails at runtime; the in-process MVS then crashes during depth-map estimation. Override with –gpu-index 0 (or -1) on a machine with a working CUDA runtime to get the GPU PatchMatch.
Definition at line 58 of file densify.hpp.
| int reusex::geometry::DensifyParams::max_fuse_points = 0 |
Cap on the number of points kept after fusion (OPTDENSE.nMaxPointsFuse).
0 = unlimited. Setting this throttles the final output size.
Definition at line 97 of file densify.hpp.
| int reusex::geometry::DensifyParams::max_resolution = 2000 |
Upper bound on max(width, height) for any image.
Larger images are downsampled until they fit. Smaller is faster but loses detail.
Definition at line 32 of file densify.hpp.
| int reusex::geometry::DensifyParams::max_threads = 0 |
Maximum concurrent OpenMP threads used during depth-map estimation.
0 = let OpenMVS pick (typically all CPU cores). The dominant memory driver is concurrent PatchMatch — each worker holds image pyramids, candidate depth/normal buffers, and neighbor-view caches in RAM. Set to a small number (e.g. 2 or 4) on memory-constrained machines.
Definition at line 65 of file densify.hpp.
| int reusex::geometry::DensifyParams::min_resolution = 640 |
Lower bound on max(width, height). Images below this are not used.
Definition at line 35 of file densify.hpp.
| int reusex::geometry::DensifyParams::num_views = 4 |
Number of neighbor views considered per image during depth-map estimation.
0 = all calibrated images.
Definition at line 39 of file densify.hpp.
| bool reusex::geometry::DensifyParams::outlier_filter = true |
Apply PCL's statistical outlier removal to the merged output after fusion.
Drops local statistical outliers but is not aggressive enough to catch far-outlier patches (groups of bad points that have each other as neighbours).
Definition at line 71 of file densify.hpp.
| int reusex::geometry::DensifyParams::outlier_mean_k = 50 |
Definition at line 72 of file densify.hpp.
| double reusex::geometry::DensifyParams::outlier_stddev_thresh = 2.0 |
Definition at line 73 of file densify.hpp.
| std::string reusex::geometry::DensifyParams::output_name = "dense" |
Name to save the dense point cloud under in ProjectDB.
Definition at line 18 of file densify.hpp.
| int reusex::geometry::DensifyParams::resolution_level = 1 |
0 = full image resolution, 1 = half, 2 = quarter, ...
Definition at line 28 of file densify.hpp.
| std::string reusex::geometry::DensifyParams::seed_cloud_name = "cloud" |
Source LiDAR cloud (name in ProjectDB) used to seed PatchMatch and the downstream 3D-point views.
Empty disables seeding.
Definition at line 22 of file densify.hpp.
| int reusex::geometry::DensifyParams::seed_max_points = 100'000 |
Sub-sample stride when copying the seed cloud (uniform).
Definition at line 25 of file densify.hpp.