three.MF.V3.Settings.Advanced
1from MF.V3.Settings.Quality import Quality as MF_V3_Settings_Quality_Quality 2from MF.V3.Settings.Scan import Scan as MF_V3_Settings_Scan_Scan 3from typing import List 4 5 6class Advanced: 7 8 """ 9 Advanced settings. 10 """ 11 class Capture: 12 13 """ 14 Capture settings. 15 """ 16 def __init__(self, horizontalFrequencies: List[int] = None, verticalFrequencies: List[int] = None, use: bool = None): 17 # Projector sample rate. 18 self.horizontalFrequencies = horizontalFrequencies 19 # Image sample rate. 20 self.verticalFrequencies = verticalFrequencies 21 # Use the capture settings. 22 self.use = use 23 24 class Sampling: 25 26 """ 27 Sampling settings. 28 """ 29 def __init__(self, projectorSampleRate: float = None, imageSampleRate: float = None, use: bool = None): 30 # Projector sample rate. 31 self.projectorSampleRate = projectorSampleRate 32 # Image sample rate. 33 self.imageSampleRate = imageSampleRate 34 # Use the sampling settings. 35 self.use = use 36 37 class EdgeDetection: 38 39 """ 40 Edge detection settings. 41 """ 42 def __init__(self, threshold: float = None, laplacianKernelRadius: int = None, gaussianBlurRadius: int = None, gaussianBlurStdDev: float = None, maximumWidthForProcessing: int = None, use: bool = None): 43 # The edge detection threshold. 44 self.threshold = threshold 45 # The Laplacian kernel radius. This must be in the range [1..5]. 46 self.laplacianKernelRadius = laplacianKernelRadius 47 """ 48 Gaussian blur kernel radius. (Optional) To disable, set to 0. 49 50 The phase images can optionally blurred before taking the Laplacian to reduce noise. 51 However as a result, the detected edges are wider. 52 """ 53 self.gaussianBlurRadius = gaussianBlurRadius 54 """ 55 Gaussian blur kernel standard deviation. This parameter is ignored if 56 \p gaussianBlurSize is zero. 57 """ 58 self.gaussianBlurStdDev = gaussianBlurStdDev 59 """ 60 The maximum image width for processing. (Optional) To disable, set to 0. 61 62 If this value is greater than zero, the phase images are resized to the maximum 63 width prior to computing the Laplacian and the the detected edges are then upsampled to the 64 original size. 65 66 This would be done to speed up processing or to detect edges on a larger scale. 67 """ 68 self.maximumWidthForProcessing = maximumWidthForProcessing 69 # Use the edge detection settings. 70 self.use = use 71 72 class PhaseFilter: 73 74 """ 75 Phase filter settings. 76 """ 77 def __init__(self, kernelRadius: int = None, spatialWeightStdDev: float = None, use: bool = None): 78 """ 79 The filter kernel radius. 80 81 A neighboring value must be within this radius to be included in the filter. 82 If the kernel radius is set to zero, the phase filtering is disabled. 83 """ 84 self.kernelRadius = kernelRadius 85 """ 86 The standard deviation of the spatial weights. 87 88 The weight of a neighboring value is \f$ exp(-(r/s)^2) \f$ where \f$ r \f$ 89 is the distance to the central value and \f$ s \f$ is the spatial weight 90 standard deviation. 91 92 If the spatial weight standard deviation is set to zero, all the spatial 93 weights are uniformly set to 1. 94 """ 95 self.spatialWeightStdDev = spatialWeightStdDev 96 # Use the phase filter settings. 97 self.use = use 98 99 class AdaptiveSampling: 100 """ 101 Adaptive sampling settings 102 103 Adaptive sampling will downsample points in regions of low detail 104 and keep points in regions of high detail. 105 """ 106 def __init__(self, rate: float, type: MF_V3_Settings_Scan_Scan.Processing.AdaptiveSampling.Type = None, use: bool = None): 107 # The sample rate [0..1] for the regions of low detail. 108 self.rate = rate 109 # Sampling type. 110 self.type = type 111 # Use the adaptive sampling settings. 112 self.use = use 113 114 class PointClipping: 115 116 """ 117 Point32 clipping settings. 118 """ 119 def __init__(self, type: MF_V3_Settings_Scan_Scan.Processing.PointClipping.Type = None, transform: List[float] = None, use: bool = None): 120 # Point32 clipping type. 121 self.type = type 122 # 4x4 transform mapping 3D points to the canonical point32 clipping coordinates. 123 self.transform = transform 124 # Use the point32 clipping settings. 125 self.use = use 126 127 class NormalEstimation: 128 129 """ 130 Normal estimation settings. 131 """ 132 def __init__(self, method: MF_V3_Settings_Scan_Scan.Processing.NormalEstimation.Method = None, maximumNeighbourCount: int = None, maximumNeighbourRadius: float = None, useMaximumNeighbourCount: bool = None, useMaximumNeighbourRadius: bool = None, use: bool = None): 133 # Normal estimation method. 134 self.method = method 135 """ 136 Maximum number of nearest neighbors used to compute the normal. 137 This value is only used with the NORMAL_OPEN3D method. 138 """ 139 self.maximumNeighbourCount = maximumNeighbourCount 140 # Maximum radius for a point32 to be considered a neighbour. 141 self.maximumNeighbourRadius = maximumNeighbourRadius 142 self.useMaximumNeighbourCount = useMaximumNeighbourCount 143 self.useMaximumNeighbourRadius = useMaximumNeighbourRadius 144 # Use the normal estimation settings. 145 self.use = use 146 147 class OutlierRemoval: 148 149 """ 150 Radius outlier removal settings. 151 """ 152 def __init__(self, neighbourCount: int = None, neighbourRadius: float = None, use: bool = None): 153 # The minimum number of points within the radius for a point32 to be retained. 154 self.neighbourCount = neighbourCount 155 # The neighbour search radius. 156 self.neighbourRadius = neighbourRadius 157 # Use the outlier removal settings. 158 self.use = use 159 160 class Remesh: 161 162 """ 163 Remesh settings. 164 """ 165 def __init__(self, quality: MF_V3_Settings_Quality_Quality = None, voxelSize: float = None, depth: int = None, scale: float = None, linearInterpolation: bool = None, use: bool = None): 166 # Remesh quality preset. 167 self.quality = quality 168 # Voxel size. 169 self.voxelSize = voxelSize 170 # Depth. 171 self.depth = depth 172 # Scale. 173 self.scale = scale 174 # Linear Interpolation. 175 self.linearInterpolation = linearInterpolation 176 # Use the remesh settings. 177 self.use = use 178 179 class Camera: 180 181 """ 182 Camera settings. 183 """ 184 def __init__(self, useContinuousExposureValues: bool = None): 185 self.useContinuousExposureValues = useContinuousExposureValues 186 187 class Turntable: 188 189 """ 190 Turntable settings. 191 """ 192 def __init__(self, rampAngle: int = None, pointClippingRadius: float = None, pointClippingMinHeight: float = None, pointClippingMaxHeight: float = None, use: bool = None): 193 # The angle in degrees to slow down the turntable at the end of a rotation. 194 self.rampAngle = rampAngle 195 # The radius of the point clipping cylinder. 196 self.pointClippingRadius = pointClippingRadius 197 # The minimum height of the point clipping cylinder. 198 self.pointClippingMinHeight = pointClippingMinHeight 199 # The maximum height of the point clipping cylinder. 200 self.pointClippingMaxHeight = pointClippingMaxHeight 201 # Use the turntable settings. 202 self.use = use 203 204 def __init__(self, capture: 'Capture' = None, sampling: 'Sampling' = None, edgeDetection: 'EdgeDetection' = None, phaseFilter: 'PhaseFilter' = None, adaptiveSampling: 'AdaptiveSampling' = None, normalEstimation: 'NormalEstimation' = None, outlierRemoval: 'OutlierRemoval' = None, remesh: 'Remesh' = None, camera: 'Camera' = None, turntable: 'Turntable' = None): 205 # Capture settings. 206 self.capture = capture 207 # Sampling settings. 208 self.sampling = sampling 209 # Edge detection settings. 210 self.edgeDetection = edgeDetection 211 # Phase filter settings. 212 self.phaseFilter = phaseFilter 213 # Adaptive sampling settings. 214 self.adaptiveSampling = adaptiveSampling 215 # Normal estimation settings. 216 self.normalEstimation = normalEstimation 217 # Radius outlier removal settings. 218 self.outlierRemoval = outlierRemoval 219 # Remesh settings. 220 self.remesh = remesh 221 # Camera settings. 222 self.camera = camera 223 # Turntable settings. 224 self.turntable = turntable
7class Advanced: 8 9 """ 10 Advanced settings. 11 """ 12 class Capture: 13 14 """ 15 Capture settings. 16 """ 17 def __init__(self, horizontalFrequencies: List[int] = None, verticalFrequencies: List[int] = None, use: bool = None): 18 # Projector sample rate. 19 self.horizontalFrequencies = horizontalFrequencies 20 # Image sample rate. 21 self.verticalFrequencies = verticalFrequencies 22 # Use the capture settings. 23 self.use = use 24 25 class Sampling: 26 27 """ 28 Sampling settings. 29 """ 30 def __init__(self, projectorSampleRate: float = None, imageSampleRate: float = None, use: bool = None): 31 # Projector sample rate. 32 self.projectorSampleRate = projectorSampleRate 33 # Image sample rate. 34 self.imageSampleRate = imageSampleRate 35 # Use the sampling settings. 36 self.use = use 37 38 class EdgeDetection: 39 40 """ 41 Edge detection settings. 42 """ 43 def __init__(self, threshold: float = None, laplacianKernelRadius: int = None, gaussianBlurRadius: int = None, gaussianBlurStdDev: float = None, maximumWidthForProcessing: int = None, use: bool = None): 44 # The edge detection threshold. 45 self.threshold = threshold 46 # The Laplacian kernel radius. This must be in the range [1..5]. 47 self.laplacianKernelRadius = laplacianKernelRadius 48 """ 49 Gaussian blur kernel radius. (Optional) To disable, set to 0. 50 51 The phase images can optionally blurred before taking the Laplacian to reduce noise. 52 However as a result, the detected edges are wider. 53 """ 54 self.gaussianBlurRadius = gaussianBlurRadius 55 """ 56 Gaussian blur kernel standard deviation. This parameter is ignored if 57 \p gaussianBlurSize is zero. 58 """ 59 self.gaussianBlurStdDev = gaussianBlurStdDev 60 """ 61 The maximum image width for processing. (Optional) To disable, set to 0. 62 63 If this value is greater than zero, the phase images are resized to the maximum 64 width prior to computing the Laplacian and the the detected edges are then upsampled to the 65 original size. 66 67 This would be done to speed up processing or to detect edges on a larger scale. 68 """ 69 self.maximumWidthForProcessing = maximumWidthForProcessing 70 # Use the edge detection settings. 71 self.use = use 72 73 class PhaseFilter: 74 75 """ 76 Phase filter settings. 77 """ 78 def __init__(self, kernelRadius: int = None, spatialWeightStdDev: float = None, use: bool = None): 79 """ 80 The filter kernel radius. 81 82 A neighboring value must be within this radius to be included in the filter. 83 If the kernel radius is set to zero, the phase filtering is disabled. 84 """ 85 self.kernelRadius = kernelRadius 86 """ 87 The standard deviation of the spatial weights. 88 89 The weight of a neighboring value is \f$ exp(-(r/s)^2) \f$ where \f$ r \f$ 90 is the distance to the central value and \f$ s \f$ is the spatial weight 91 standard deviation. 92 93 If the spatial weight standard deviation is set to zero, all the spatial 94 weights are uniformly set to 1. 95 """ 96 self.spatialWeightStdDev = spatialWeightStdDev 97 # Use the phase filter settings. 98 self.use = use 99 100 class AdaptiveSampling: 101 """ 102 Adaptive sampling settings 103 104 Adaptive sampling will downsample points in regions of low detail 105 and keep points in regions of high detail. 106 """ 107 def __init__(self, rate: float, type: MF_V3_Settings_Scan_Scan.Processing.AdaptiveSampling.Type = None, use: bool = None): 108 # The sample rate [0..1] for the regions of low detail. 109 self.rate = rate 110 # Sampling type. 111 self.type = type 112 # Use the adaptive sampling settings. 113 self.use = use 114 115 class PointClipping: 116 117 """ 118 Point32 clipping settings. 119 """ 120 def __init__(self, type: MF_V3_Settings_Scan_Scan.Processing.PointClipping.Type = None, transform: List[float] = None, use: bool = None): 121 # Point32 clipping type. 122 self.type = type 123 # 4x4 transform mapping 3D points to the canonical point32 clipping coordinates. 124 self.transform = transform 125 # Use the point32 clipping settings. 126 self.use = use 127 128 class NormalEstimation: 129 130 """ 131 Normal estimation settings. 132 """ 133 def __init__(self, method: MF_V3_Settings_Scan_Scan.Processing.NormalEstimation.Method = None, maximumNeighbourCount: int = None, maximumNeighbourRadius: float = None, useMaximumNeighbourCount: bool = None, useMaximumNeighbourRadius: bool = None, use: bool = None): 134 # Normal estimation method. 135 self.method = method 136 """ 137 Maximum number of nearest neighbors used to compute the normal. 138 This value is only used with the NORMAL_OPEN3D method. 139 """ 140 self.maximumNeighbourCount = maximumNeighbourCount 141 # Maximum radius for a point32 to be considered a neighbour. 142 self.maximumNeighbourRadius = maximumNeighbourRadius 143 self.useMaximumNeighbourCount = useMaximumNeighbourCount 144 self.useMaximumNeighbourRadius = useMaximumNeighbourRadius 145 # Use the normal estimation settings. 146 self.use = use 147 148 class OutlierRemoval: 149 150 """ 151 Radius outlier removal settings. 152 """ 153 def __init__(self, neighbourCount: int = None, neighbourRadius: float = None, use: bool = None): 154 # The minimum number of points within the radius for a point32 to be retained. 155 self.neighbourCount = neighbourCount 156 # The neighbour search radius. 157 self.neighbourRadius = neighbourRadius 158 # Use the outlier removal settings. 159 self.use = use 160 161 class Remesh: 162 163 """ 164 Remesh settings. 165 """ 166 def __init__(self, quality: MF_V3_Settings_Quality_Quality = None, voxelSize: float = None, depth: int = None, scale: float = None, linearInterpolation: bool = None, use: bool = None): 167 # Remesh quality preset. 168 self.quality = quality 169 # Voxel size. 170 self.voxelSize = voxelSize 171 # Depth. 172 self.depth = depth 173 # Scale. 174 self.scale = scale 175 # Linear Interpolation. 176 self.linearInterpolation = linearInterpolation 177 # Use the remesh settings. 178 self.use = use 179 180 class Camera: 181 182 """ 183 Camera settings. 184 """ 185 def __init__(self, useContinuousExposureValues: bool = None): 186 self.useContinuousExposureValues = useContinuousExposureValues 187 188 class Turntable: 189 190 """ 191 Turntable settings. 192 """ 193 def __init__(self, rampAngle: int = None, pointClippingRadius: float = None, pointClippingMinHeight: float = None, pointClippingMaxHeight: float = None, use: bool = None): 194 # The angle in degrees to slow down the turntable at the end of a rotation. 195 self.rampAngle = rampAngle 196 # The radius of the point clipping cylinder. 197 self.pointClippingRadius = pointClippingRadius 198 # The minimum height of the point clipping cylinder. 199 self.pointClippingMinHeight = pointClippingMinHeight 200 # The maximum height of the point clipping cylinder. 201 self.pointClippingMaxHeight = pointClippingMaxHeight 202 # Use the turntable settings. 203 self.use = use 204 205 def __init__(self, capture: 'Capture' = None, sampling: 'Sampling' = None, edgeDetection: 'EdgeDetection' = None, phaseFilter: 'PhaseFilter' = None, adaptiveSampling: 'AdaptiveSampling' = None, normalEstimation: 'NormalEstimation' = None, outlierRemoval: 'OutlierRemoval' = None, remesh: 'Remesh' = None, camera: 'Camera' = None, turntable: 'Turntable' = None): 206 # Capture settings. 207 self.capture = capture 208 # Sampling settings. 209 self.sampling = sampling 210 # Edge detection settings. 211 self.edgeDetection = edgeDetection 212 # Phase filter settings. 213 self.phaseFilter = phaseFilter 214 # Adaptive sampling settings. 215 self.adaptiveSampling = adaptiveSampling 216 # Normal estimation settings. 217 self.normalEstimation = normalEstimation 218 # Radius outlier removal settings. 219 self.outlierRemoval = outlierRemoval 220 # Remesh settings. 221 self.remesh = remesh 222 # Camera settings. 223 self.camera = camera 224 # Turntable settings. 225 self.turntable = turntable
Advanced settings.
205 def __init__(self, capture: 'Capture' = None, sampling: 'Sampling' = None, edgeDetection: 'EdgeDetection' = None, phaseFilter: 'PhaseFilter' = None, adaptiveSampling: 'AdaptiveSampling' = None, normalEstimation: 'NormalEstimation' = None, outlierRemoval: 'OutlierRemoval' = None, remesh: 'Remesh' = None, camera: 'Camera' = None, turntable: 'Turntable' = None): 206 # Capture settings. 207 self.capture = capture 208 # Sampling settings. 209 self.sampling = sampling 210 # Edge detection settings. 211 self.edgeDetection = edgeDetection 212 # Phase filter settings. 213 self.phaseFilter = phaseFilter 214 # Adaptive sampling settings. 215 self.adaptiveSampling = adaptiveSampling 216 # Normal estimation settings. 217 self.normalEstimation = normalEstimation 218 # Radius outlier removal settings. 219 self.outlierRemoval = outlierRemoval 220 # Remesh settings. 221 self.remesh = remesh 222 # Camera settings. 223 self.camera = camera 224 # Turntable settings. 225 self.turntable = turntable
12 class Capture: 13 14 """ 15 Capture settings. 16 """ 17 def __init__(self, horizontalFrequencies: List[int] = None, verticalFrequencies: List[int] = None, use: bool = None): 18 # Projector sample rate. 19 self.horizontalFrequencies = horizontalFrequencies 20 # Image sample rate. 21 self.verticalFrequencies = verticalFrequencies 22 # Use the capture settings. 23 self.use = use
Capture settings.
17 def __init__(self, horizontalFrequencies: List[int] = None, verticalFrequencies: List[int] = None, use: bool = None): 18 # Projector sample rate. 19 self.horizontalFrequencies = horizontalFrequencies 20 # Image sample rate. 21 self.verticalFrequencies = verticalFrequencies 22 # Use the capture settings. 23 self.use = use
25 class Sampling: 26 27 """ 28 Sampling settings. 29 """ 30 def __init__(self, projectorSampleRate: float = None, imageSampleRate: float = None, use: bool = None): 31 # Projector sample rate. 32 self.projectorSampleRate = projectorSampleRate 33 # Image sample rate. 34 self.imageSampleRate = imageSampleRate 35 # Use the sampling settings. 36 self.use = use
Sampling settings.
30 def __init__(self, projectorSampleRate: float = None, imageSampleRate: float = None, use: bool = None): 31 # Projector sample rate. 32 self.projectorSampleRate = projectorSampleRate 33 # Image sample rate. 34 self.imageSampleRate = imageSampleRate 35 # Use the sampling settings. 36 self.use = use
38 class EdgeDetection: 39 40 """ 41 Edge detection settings. 42 """ 43 def __init__(self, threshold: float = None, laplacianKernelRadius: int = None, gaussianBlurRadius: int = None, gaussianBlurStdDev: float = None, maximumWidthForProcessing: int = None, use: bool = None): 44 # The edge detection threshold. 45 self.threshold = threshold 46 # The Laplacian kernel radius. This must be in the range [1..5]. 47 self.laplacianKernelRadius = laplacianKernelRadius 48 """ 49 Gaussian blur kernel radius. (Optional) To disable, set to 0. 50 51 The phase images can optionally blurred before taking the Laplacian to reduce noise. 52 However as a result, the detected edges are wider. 53 """ 54 self.gaussianBlurRadius = gaussianBlurRadius 55 """ 56 Gaussian blur kernel standard deviation. This parameter is ignored if 57 \p gaussianBlurSize is zero. 58 """ 59 self.gaussianBlurStdDev = gaussianBlurStdDev 60 """ 61 The maximum image width for processing. (Optional) To disable, set to 0. 62 63 If this value is greater than zero, the phase images are resized to the maximum 64 width prior to computing the Laplacian and the the detected edges are then upsampled to the 65 original size. 66 67 This would be done to speed up processing or to detect edges on a larger scale. 68 """ 69 self.maximumWidthForProcessing = maximumWidthForProcessing 70 # Use the edge detection settings. 71 self.use = use
Edge detection settings.
43 def __init__(self, threshold: float = None, laplacianKernelRadius: int = None, gaussianBlurRadius: int = None, gaussianBlurStdDev: float = None, maximumWidthForProcessing: int = None, use: bool = None): 44 # The edge detection threshold. 45 self.threshold = threshold 46 # The Laplacian kernel radius. This must be in the range [1..5]. 47 self.laplacianKernelRadius = laplacianKernelRadius 48 """ 49 Gaussian blur kernel radius. (Optional) To disable, set to 0. 50 51 The phase images can optionally blurred before taking the Laplacian to reduce noise. 52 However as a result, the detected edges are wider. 53 """ 54 self.gaussianBlurRadius = gaussianBlurRadius 55 """ 56 Gaussian blur kernel standard deviation. This parameter is ignored if 57 \p gaussianBlurSize is zero. 58 """ 59 self.gaussianBlurStdDev = gaussianBlurStdDev 60 """ 61 The maximum image width for processing. (Optional) To disable, set to 0. 62 63 If this value is greater than zero, the phase images are resized to the maximum 64 width prior to computing the Laplacian and the the detected edges are then upsampled to the 65 original size. 66 67 This would be done to speed up processing or to detect edges on a larger scale. 68 """ 69 self.maximumWidthForProcessing = maximumWidthForProcessing 70 # Use the edge detection settings. 71 self.use = use
Gaussian blur kernel radius. (Optional) To disable, set to 0.
The phase images can optionally blurred before taking the Laplacian to reduce noise. However as a result, the detected edges are wider.
Gaussian blur kernel standard deviation. This parameter is ignored if \p gaussianBlurSize is zero.
The maximum image width for processing. (Optional) To disable, set to 0.
If this value is greater than zero, the phase images are resized to the maximum width prior to computing the Laplacian and the the detected edges are then upsampled to the original size.
This would be done to speed up processing or to detect edges on a larger scale.
73 class PhaseFilter: 74 75 """ 76 Phase filter settings. 77 """ 78 def __init__(self, kernelRadius: int = None, spatialWeightStdDev: float = None, use: bool = None): 79 """ 80 The filter kernel radius. 81 82 A neighboring value must be within this radius to be included in the filter. 83 If the kernel radius is set to zero, the phase filtering is disabled. 84 """ 85 self.kernelRadius = kernelRadius 86 """ 87 The standard deviation of the spatial weights. 88 89 The weight of a neighboring value is \f$ exp(-(r/s)^2) \f$ where \f$ r \f$ 90 is the distance to the central value and \f$ s \f$ is the spatial weight 91 standard deviation. 92 93 If the spatial weight standard deviation is set to zero, all the spatial 94 weights are uniformly set to 1. 95 """ 96 self.spatialWeightStdDev = spatialWeightStdDev 97 # Use the phase filter settings. 98 self.use = use
Phase filter settings.
78 def __init__(self, kernelRadius: int = None, spatialWeightStdDev: float = None, use: bool = None): 79 """ 80 The filter kernel radius. 81 82 A neighboring value must be within this radius to be included in the filter. 83 If the kernel radius is set to zero, the phase filtering is disabled. 84 """ 85 self.kernelRadius = kernelRadius 86 """ 87 The standard deviation of the spatial weights. 88 89 The weight of a neighboring value is \f$ exp(-(r/s)^2) \f$ where \f$ r \f$ 90 is the distance to the central value and \f$ s \f$ is the spatial weight 91 standard deviation. 92 93 If the spatial weight standard deviation is set to zero, all the spatial 94 weights are uniformly set to 1. 95 """ 96 self.spatialWeightStdDev = spatialWeightStdDev 97 # Use the phase filter settings. 98 self.use = use
The filter kernel radius.
A neighboring value must be within this radius to be included in the filter. If the kernel radius is set to zero, the phase filtering is disabled.
The standard deviation of the spatial weights.
The weight of a neighboring value is $ exp(-(r/s)^2) $ where $ r $ is the distance to the central value and $ s $ is the spatial weight standard deviation.
If the spatial weight standard deviation is set to zero, all the spatial weights are uniformly set to 1.
100 class AdaptiveSampling: 101 """ 102 Adaptive sampling settings 103 104 Adaptive sampling will downsample points in regions of low detail 105 and keep points in regions of high detail. 106 """ 107 def __init__(self, rate: float, type: MF_V3_Settings_Scan_Scan.Processing.AdaptiveSampling.Type = None, use: bool = None): 108 # The sample rate [0..1] for the regions of low detail. 109 self.rate = rate 110 # Sampling type. 111 self.type = type 112 # Use the adaptive sampling settings. 113 self.use = use
Adaptive sampling settings
Adaptive sampling will downsample points in regions of low detail and keep points in regions of high detail.
107 def __init__(self, rate: float, type: MF_V3_Settings_Scan_Scan.Processing.AdaptiveSampling.Type = None, use: bool = None): 108 # The sample rate [0..1] for the regions of low detail. 109 self.rate = rate 110 # Sampling type. 111 self.type = type 112 # Use the adaptive sampling settings. 113 self.use = use
115 class PointClipping: 116 117 """ 118 Point32 clipping settings. 119 """ 120 def __init__(self, type: MF_V3_Settings_Scan_Scan.Processing.PointClipping.Type = None, transform: List[float] = None, use: bool = None): 121 # Point32 clipping type. 122 self.type = type 123 # 4x4 transform mapping 3D points to the canonical point32 clipping coordinates. 124 self.transform = transform 125 # Use the point32 clipping settings. 126 self.use = use
Point32 clipping settings.
120 def __init__(self, type: MF_V3_Settings_Scan_Scan.Processing.PointClipping.Type = None, transform: List[float] = None, use: bool = None): 121 # Point32 clipping type. 122 self.type = type 123 # 4x4 transform mapping 3D points to the canonical point32 clipping coordinates. 124 self.transform = transform 125 # Use the point32 clipping settings. 126 self.use = use
128 class NormalEstimation: 129 130 """ 131 Normal estimation settings. 132 """ 133 def __init__(self, method: MF_V3_Settings_Scan_Scan.Processing.NormalEstimation.Method = None, maximumNeighbourCount: int = None, maximumNeighbourRadius: float = None, useMaximumNeighbourCount: bool = None, useMaximumNeighbourRadius: bool = None, use: bool = None): 134 # Normal estimation method. 135 self.method = method 136 """ 137 Maximum number of nearest neighbors used to compute the normal. 138 This value is only used with the NORMAL_OPEN3D method. 139 """ 140 self.maximumNeighbourCount = maximumNeighbourCount 141 # Maximum radius for a point32 to be considered a neighbour. 142 self.maximumNeighbourRadius = maximumNeighbourRadius 143 self.useMaximumNeighbourCount = useMaximumNeighbourCount 144 self.useMaximumNeighbourRadius = useMaximumNeighbourRadius 145 # Use the normal estimation settings. 146 self.use = use
Normal estimation settings.
133 def __init__(self, method: MF_V3_Settings_Scan_Scan.Processing.NormalEstimation.Method = None, maximumNeighbourCount: int = None, maximumNeighbourRadius: float = None, useMaximumNeighbourCount: bool = None, useMaximumNeighbourRadius: bool = None, use: bool = None): 134 # Normal estimation method. 135 self.method = method 136 """ 137 Maximum number of nearest neighbors used to compute the normal. 138 This value is only used with the NORMAL_OPEN3D method. 139 """ 140 self.maximumNeighbourCount = maximumNeighbourCount 141 # Maximum radius for a point32 to be considered a neighbour. 142 self.maximumNeighbourRadius = maximumNeighbourRadius 143 self.useMaximumNeighbourCount = useMaximumNeighbourCount 144 self.useMaximumNeighbourRadius = useMaximumNeighbourRadius 145 # Use the normal estimation settings. 146 self.use = use
148 class OutlierRemoval: 149 150 """ 151 Radius outlier removal settings. 152 """ 153 def __init__(self, neighbourCount: int = None, neighbourRadius: float = None, use: bool = None): 154 # The minimum number of points within the radius for a point32 to be retained. 155 self.neighbourCount = neighbourCount 156 # The neighbour search radius. 157 self.neighbourRadius = neighbourRadius 158 # Use the outlier removal settings. 159 self.use = use
Radius outlier removal settings.
153 def __init__(self, neighbourCount: int = None, neighbourRadius: float = None, use: bool = None): 154 # The minimum number of points within the radius for a point32 to be retained. 155 self.neighbourCount = neighbourCount 156 # The neighbour search radius. 157 self.neighbourRadius = neighbourRadius 158 # Use the outlier removal settings. 159 self.use = use
161 class Remesh: 162 163 """ 164 Remesh settings. 165 """ 166 def __init__(self, quality: MF_V3_Settings_Quality_Quality = None, voxelSize: float = None, depth: int = None, scale: float = None, linearInterpolation: bool = None, use: bool = None): 167 # Remesh quality preset. 168 self.quality = quality 169 # Voxel size. 170 self.voxelSize = voxelSize 171 # Depth. 172 self.depth = depth 173 # Scale. 174 self.scale = scale 175 # Linear Interpolation. 176 self.linearInterpolation = linearInterpolation 177 # Use the remesh settings. 178 self.use = use
Remesh settings.
166 def __init__(self, quality: MF_V3_Settings_Quality_Quality = None, voxelSize: float = None, depth: int = None, scale: float = None, linearInterpolation: bool = None, use: bool = None): 167 # Remesh quality preset. 168 self.quality = quality 169 # Voxel size. 170 self.voxelSize = voxelSize 171 # Depth. 172 self.depth = depth 173 # Scale. 174 self.scale = scale 175 # Linear Interpolation. 176 self.linearInterpolation = linearInterpolation 177 # Use the remesh settings. 178 self.use = use
180 class Camera: 181 182 """ 183 Camera settings. 184 """ 185 def __init__(self, useContinuousExposureValues: bool = None): 186 self.useContinuousExposureValues = useContinuousExposureValues
Camera settings.
188 class Turntable: 189 190 """ 191 Turntable settings. 192 """ 193 def __init__(self, rampAngle: int = None, pointClippingRadius: float = None, pointClippingMinHeight: float = None, pointClippingMaxHeight: float = None, use: bool = None): 194 # The angle in degrees to slow down the turntable at the end of a rotation. 195 self.rampAngle = rampAngle 196 # The radius of the point clipping cylinder. 197 self.pointClippingRadius = pointClippingRadius 198 # The minimum height of the point clipping cylinder. 199 self.pointClippingMinHeight = pointClippingMinHeight 200 # The maximum height of the point clipping cylinder. 201 self.pointClippingMaxHeight = pointClippingMaxHeight 202 # Use the turntable settings. 203 self.use = use
Turntable settings.
193 def __init__(self, rampAngle: int = None, pointClippingRadius: float = None, pointClippingMinHeight: float = None, pointClippingMaxHeight: float = None, use: bool = None): 194 # The angle in degrees to slow down the turntable at the end of a rotation. 195 self.rampAngle = rampAngle 196 # The radius of the point clipping cylinder. 197 self.pointClippingRadius = pointClippingRadius 198 # The minimum height of the point clipping cylinder. 199 self.pointClippingMinHeight = pointClippingMinHeight 200 # The maximum height of the point clipping cylinder. 201 self.pointClippingMaxHeight = pointClippingMaxHeight 202 # Use the turntable settings. 203 self.use = use