pub struct Dense {
pub enabled: bool,
pub backend: String,
pub undistort_backend: String,
pub profile: String,
pub max_image_size: i64,
pub views: usize,
pub max_levels: Option<usize>,
pub serialize: bool,
pub depth_cache: bool,
pub fusion: Fusion,
pub filter: Filter,
}Expand description
Densification plan. Start from Dense::profile and add to it with methods. Unset fusion/filter values use the profile defaults.
Fields§
§enabled: boolWhether to densify (if off, there is no post-processing point cloud).
backend: StringPatchMatch backend (cuda).
undistort_backend: StringImage undistortion backend (cpu|cuda). Same result as cpu up to rounding.
profile: StringProfile (fast|quality).
max_image_size: i64Maximum undistorted image size.
views: usizeNumber of source views (1..=32).
max_levels: Option<usize>Upper bound on the number of scales (>= 1; 1 = a single scale at full resolution). If unset, the profile default.
serialize: boolSerialize preview/refined densification backend calls.
depth_cache: boolReuse depth maps of overlapping images.
fusion: FusionFusion overrides.
filter: FilterDepth map filter overrides.
Implementations§
Source§impl Dense
impl Dense
Sourcepub fn profile(name: &str) -> Self
pub fn profile(name: &str) -> Self
Start from a profile (fast|quality) and the defaults (on, backend cuda).
Sourcepub fn undistort_backend(self, name: &str) -> Self
pub fn undistort_backend(self, name: &str) -> Self
Image undistortion backend name (cpu|cuda).
Sourcepub fn max_image_size(self, n: i64) -> Self
pub fn max_image_size(self, n: i64) -> Self
Maximum undistorted image size.
Sourcepub fn depth_cache(self, on: bool) -> Self
pub fn depth_cache(self, on: bool) -> Self
Reuse depth maps of overlapping images.
Sourcepub fn fusion_mode(self, mode: &str) -> Self
pub fn fusion_mode(self, mode: &str) -> Self
Fusion mode (consistency|traversal).
Sourcepub fn fusion_min_views(self, n: usize) -> Self
pub fn fusion_min_views(self, n: usize) -> Self
Consistent fusion: minimum number of agreeing views besides the reference.
Sourcepub fn fusion_depth_error(self, v: f64) -> Self
pub fn fusion_depth_error(self, v: f64) -> Self
Fusion relative depth tolerance.
Sourcepub fn fusion_normal_error(self, deg: f64) -> Self
pub fn fusion_normal_error(self, deg: f64) -> Self
Fusion normal tolerance angle (degrees).
Sourcepub fn fusion_reproj_error(self, px: f64) -> Self
pub fn fusion_reproj_error(self, px: f64) -> Self
Fusion reprojection tolerance (pixels).
Sourcepub fn fusion_residual(self, mode: &str) -> Self
pub fn fusion_residual(self, mode: &str) -> Self
Handling of remaining pixels in consistent fusion (none|release|second-pass).
Sourcepub fn fusion_smooth_iters(self, n: usize) -> Self
pub fn fusion_smooth_iters(self, n: usize) -> Self
Smoothing of the fused cloud along normals: iterations (0 = off).
Sourcepub fn fusion_smooth_radius(self, r: f64) -> Self
pub fn fusion_smooth_radius(self, r: f64) -> Self
Smoothing neighbour radius (ground-sample-distance multiple).
Sourcepub fn fusion_smooth_range(self, r: f64) -> Self
pub fn fusion_smooth_range(self, r: f64) -> Self
Smoothing range sigma along the normal (ground-sample-distance multiple).
Sourcepub fn fusion_smooth_normal(self, deg: f64) -> Self
pub fn fusion_smooth_normal(self, deg: f64) -> Self
Smoothing neighbour normal gate (degrees).
Sourcepub fn max_levels(self, n: usize) -> Self
pub fn max_levels(self, n: usize) -> Self
Upper bound on the number of scales (1 = a single scale at full resolution).
Sourcepub fn fill_holes(self, on: bool) -> Self
pub fn fill_holes(self, on: bool) -> Self
Edge-aware hole filling of the filtered depth maps.
Sourcepub fn filter_min_views(self, n: u32) -> Self
pub fn filter_min_views(self, n: u32) -> Self
Depth map filter: minimum number of agreeing views.
Sourcepub fn filter_geom_error(self, px: f32) -> Self
pub fn filter_geom_error(self, px: f32) -> Self
Depth map filter: forward/backward reprojection tolerance (pixels).
Sourcepub fn filter_min_ncc(self, v: f32) -> Self
pub fn filter_min_ncc(self, v: f32) -> Self
Depth map filter: minimum NCC.
Sourcepub fn median_filter(self, on: bool) -> Self
pub fn median_filter(self, on: bool) -> Self
Median plane filter before readout.
Sourcepub fn apply(&self, o: &mut DensifyOptions) -> Result<(), String>
pub fn apply(&self, o: &mut DensifyOptions) -> Result<(), String>
Apply the overrides to the densification options (an unknown name is an error).
Sourcepub fn config(&self) -> Result<DenseConfig, String>
pub fn config(&self) -> Result<DenseConfig, String>
Densification settings for running. The backend is created here (if there is no device, that error is reported in the densification stage).
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Dense
impl<'de> Deserialize<'de> for Dense
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl StructuralPartialEq for Dense
Auto Trait Implementations§
impl Freeze for Dense
impl RefUnwindSafe for Dense
impl Send for Dense
impl Sync for Dense
impl Unpin for Dense
impl UnsafeUnpin for Dense
impl UnwindSafe for Dense
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T, U> Imply<T> for U
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
impl<T> Scalar for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.