Time-of-Flight Library(ToF) 4.0.2
 
processing_config.hpp
1#ifndef _CHRONOPTICS_TOF_PROCESSING_CONFIG_HPP_
2#define _CHRONOPTICS_TOF_PROCESSING_CONFIG_HPP_
3
4#include <chronoptics/tof/processing_config.h>
5
6#include <chronoptics/tof/base.hpp>
7
8namespace chronoptics {
9namespace tof {
10
11/** The shape of which surrounding pixels are checked in the flying pixel filter
12 */
13enum class FlyingShape {
14 PLUS = 0, /** Four neighboring pixels in a plus shape */
15 BOX = 1, /** All eight neighboring pixels */
16};
17
18/** Mixed pixel sort mode. The mode you want to use depends on your application.
19 */
20enum class MpSortMode {
21 DARKEST = 0, /** Choose darkest path */
22 SHORTEST = 1, /** Return the surface of a translucent object, resolve corners or checkerboard lens flare */
23 BRIGHTEST = 2, /** Mixed pixels between foreground and background, get the best SNR */
24 LONGEST = 3, /** Correct lens flare from close bright objects */
25 AGGRESSOR = 4, /** Correct lens flare */
26 ADAPTIVE_SHORT_V0 = 5, /** Adaptive shortest */
27 ADAPTIVE_SHORT_V1 = 6, /** Adaptive shortest version two */
28 AGGRESSOR_V2 = 7, /** Correct lens flare version two */
29};
30
31/** What kind of binning to do
32 */
33enum class BinningMode {
34 NORMAL = 0, /** Normal binning, a BxB grid averaged to a single pixel */
35 SMART = 1, /** Smart binning, take into account the standard deviation around a chosen pixel. Similar to local means but reduces the image size */
36};
37
38/** In what dimension the xyz is exported
39 */
40enum class XyzDimension {
41 MILLIMETER = 0, /** Export in millimeters */
42 METER = 1, /** Export in meters */
43};
44
45/** Processing that can be done
46*/
47class ProcessingConfig : public detail::Base<tof_processing_config, tof_processing_config_delete> {
48 public:
49 /** Construct from pointer */
50 ProcessingConfig(tof_processing_config_t ptr) {
51 this->ptr_ = ptr;
52 }
53
54 /** Create default processing config
55 */
56 ProcessingConfig() : ProcessingConfig(tof_processing_config_new_default(TOF_ERROR_HANDLER{})) {}
57
58 /** Load processing config from disk
59 * @param file_location Location of processing config
60 */
61 ProcessingConfig(StringView file_location) : ProcessingConfig(tof_processing_config_new_from_disk(file_location, TOF_ERROR_HANDLER{})) {}
62
63 /** Write processing config to disk
64 * @param file_location Location where to save the processing config
65 */
66 void write(StringView file_location) const {
67 return tof_processing_config_write(this->ptr_, file_location, TOF_ERROR_HANDLER{});
68 }
69
70 /** Get whether processing on the gpu is enabled
71 * @return Enabled
72 */
73 bool get_gpu() const {
74 return tof_processing_config_get_gpu(this->ptr_, TOF_ERROR_HANDLER{});
75 }
76
77 /** Set whether processing on the gpu is enabled
78 * @param gpu Enabled
79 */
80 void set_gpu(bool gpu) {
81 return tof_processing_config_set_gpu(this->ptr_, gpu, TOF_ERROR_HANDLER{});
82 }
83
84 /** Get whether the calibration is applied
85 * @return Enabled
86 */
88 return tof_processing_config_get_calibration_enabled(this->ptr_, TOF_ERROR_HANDLER{});
89 }
90
91 /** Set whether the calibration is applied
92 * @param enabled Enabled
93 */
94 void set_calibration_enabled(bool enabled) {
95 return tof_processing_config_set_calibration_enabled(this->ptr_, enabled, TOF_ERROR_HANDLER{});
96 }
97
98 /** Get whether phase unwrapping is enabled
99 * @return Enabled
100 */
102 return tof_processing_config_get_phase_unwrapping_enabled(this->ptr_, TOF_ERROR_HANDLER{});
103 }
104
105 /** Set whether phase unwrapping is enabled
106 * @param enabled Enabled
107 */
108 void set_phase_unwrapping_enabled(bool enabled) {
109 return tof_processing_config_set_phase_unwrapping_enabled(this->ptr_, enabled, TOF_ERROR_HANDLER{});
110 }
111
112 /** Get The maximum distance between ideal location and actual
113 * @return Max offset, range [0, 1]
114 */
116 return tof_processing_config_get_phase_unwrapping_max_offset(this->ptr_, TOF_ERROR_HANDLER{});
117 }
118
119 /** Set The maximum distance between ideal location and actual
120 * @param max_offset Max offset, range [0, 1]
121 */
122 void set_phase_unwrapping_max_offset(double max_offset) {
123 return tof_processing_config_set_phase_unwrapping_max_offset(this->ptr_, max_offset, TOF_ERROR_HANDLER{});
124 }
125
126 /** Get whether basic phase unwrapping is enabled. A simpler phase unwrapping
127 * algorithm which uses the smaller of the two modulation frequencies to
128 * unwrap the larger one. This works well with 15 and 70 MHz for example
129 * @return Enabled
130 */
132 return tof_processing_config_get_basic_phase_unwrapping_enabled(this->ptr_, TOF_ERROR_HANDLER{});
133 }
134
135 /** Set whether basic phase unwrapping is enabled. A simpler phase unwrapping
136 * algorithm which uses the smaller of the two modulation frequencies to
137 * unwrap the larger one. This works well with 15 and 70 MHz for example
138 * @param enabled Enabled
139 */
141 return tof_processing_config_set_basic_phase_unwrapping_enabled(this->ptr_, enabled, TOF_ERROR_HANDLER{});
142 }
143
144 /** Get the max radial offset between the two modulation frequencies.
145 * @return Max offset
146 */
148 return tof_processing_config_get_basic_phase_unwrapping_max_offset(this->ptr_, TOF_ERROR_HANDLER{});
149 }
150
151 /** Set the max radial offset between the two modulation frequencies.
152 * @param offset Max offset
153 */
155 return tof_processing_config_set_basic_phase_unwrapping_max_offset(this->ptr_, offset, TOF_ERROR_HANDLER{});
156 }
157
158 /** Get wether mpi detect is enabled
159 * @return Enabled
160 */
162 return tof_processing_config_get_mpi_detect_enabled(this->ptr_, TOF_ERROR_HANDLER{});
163 }
164
165 /** Set wether mpi detect is enabled
166 * @param enabled Enabled
167 */
168 void set_mpi_detect_enabled(bool enabled) {
169 return tof_processing_config_set_mpi_detect_enabled(this->ptr_, enabled, TOF_ERROR_HANDLER{});
170 }
171
172 /** Get The amplitude ratio value
173 * @return The maximum ratio
174 */
175 float get_mpi_detect_aratio() const {
176 return tof_processing_config_get_mpi_detect_aratio(this->ptr_, TOF_ERROR_HANDLER{});
177 }
178
179 /** Set The amplitude ratio value
180 * @param aratio The maximum ratio
181 */
182 void set_mpi_detect_aratio(float aratio) {
183 return tof_processing_config_set_mpi_detect_aratio(this->ptr_, aratio, TOF_ERROR_HANDLER{});
184 }
185
186 /** Get the phase difference ratio
187 * @return The maximum phase difference
188 */
190 return tof_processing_config_get_mpi_detect_phi_diff(this->ptr_, TOF_ERROR_HANDLER{});
191 }
192
193 /** Set the phase difference ratio
194 * @param phi_diff The maximum phase difference
195 */
196 void set_mpi_detect_phi_diff(float phi_diff) {
197 return tof_processing_config_set_mpi_detect_phi_diff(this->ptr_, phi_diff, TOF_ERROR_HANDLER{});
198 }
199
200 /** Get wether mixed pixel is enabled
201 * @return Enabled
202 */
204 return tof_processing_config_get_mixed_pixel_enabled(this->ptr_, TOF_ERROR_HANDLER{});
205 }
206
207 /** Set wether mixed pixel is enabled
208 * @param enabled Enabled
209 */
210 void set_mixed_pixel_enabled(bool enabled) {
211 return tof_processing_config_set_mixed_pixel_enabled(this->ptr_, enabled, TOF_ERROR_HANDLER{});
212 }
213
214 /** Get location of the mixed pixel look up table file
215 * @return File location
216 */
217 const char* get_mixed_pixel_lut_file() const {
218 return tof_processing_config_get_mixed_pixel_lut_file(this->ptr_, TOF_ERROR_HANDLER{});
219 }
220
221 /** Set location of the mixed pixel look up table file
222 * @param file_location File location
223 */
224 void set_mixed_pixel_lut_file(StringView file_location) {
225 return tof_processing_config_set_mixed_pixel_lut_file(this->ptr_, file_location, TOF_ERROR_HANDLER{});
226 }
227
228 /** Get minimum amplitude that pixel needs to have to apply mixed pixel to it
229 * @return Minimum amplitude
230 */
231 double get_mixed_pixel_amp_min() const {
232 return tof_processing_config_get_mixed_pixel_amp_min(this->ptr_, TOF_ERROR_HANDLER{});
233 }
234
235 /** Set minimum amplitude that pixel needs to have to apply mixed pixel to it
236 * @param amp_min Minimum amplitude
237 */
238 void set_mixed_pixel_amp_min(double amp_min) {
239 return tof_processing_config_set_mixed_pixel_amp_min(this->ptr_, amp_min, TOF_ERROR_HANDLER{});
240 }
241
242 /** Get what output is selected
243 * @return Sort mode
244 */
245 MpSortMode get_mixed_pixel_sort_mode() const {
246 return static_cast<MpSortMode>(tof_processing_config_get_mixed_pixel_sort_mode(this->ptr_, TOF_ERROR_HANDLER{}));
247 }
248
249 /** Set what output is selected
250 * @param sort_mode Sort mode
251 */
252 void set_mixed_pixel_sort_mode(MpSortMode sort_mode) {
253 return tof_processing_config_set_mixed_pixel_sort_mode(this->ptr_, static_cast<tof_mp_sort_mode>(sort_mode), TOF_ERROR_HANDLER{});
254 }
255
256 /** Get the amplitude ratio for detecting MPI
257 * @return Amplitude ratio
258 */
259 double get_mixed_pixel_aratio() const {
260 return tof_processing_config_get_mixed_pixel_aratio(this->ptr_, TOF_ERROR_HANDLER{});
261 }
262
263 /** Set the amplitude ratio for detecting MPI
264 * @param aratio Amplitude ratio
265 */
266 void set_mixed_pixel_aratio(double aratio) {
267 return tof_processing_config_set_mixed_pixel_aratio(this->ptr_, aratio, TOF_ERROR_HANDLER{});
268 }
269
270 /** Get the phase difference for detecting MPI
271 * @return Phase difference
272 */
274 return tof_processing_config_get_mixed_pixel_phi_diff(this->ptr_, TOF_ERROR_HANDLER{});
275 }
276
277 /** Set the phase difference for detecting MPI
278 * @param phi_diff Phase difference
279 */
280 void set_mixed_pixel_phi_diff(double phi_diff) {
281 return tof_processing_config_set_mixed_pixel_phi_diff(this->ptr_, phi_diff, TOF_ERROR_HANDLER{});
282 }
283
284 /** Get the threshold to classify a pixel as an aggressor
285 * @return Aggressor threshold
286 */
288 return tof_processing_config_get_mixed_pixel_aggressor_threshold(this->ptr_, TOF_ERROR_HANDLER{});
289 }
290
291 /** Set the threshold to classify a pixel as an aggressor
292 * @param threshold Aggressor threshold
293 */
294 void set_mixed_pixel_aggressor_threshold(double threshold) {
295 return tof_processing_config_set_mixed_pixel_aggressor_threshold(this->ptr_, threshold, TOF_ERROR_HANDLER{});
296 }
297
298 /** Get the minimum amount of bright pixels before a bright spot is classified
299 * as an aggressor
300 * @return Minimum aggressor size
301 */
303 return tof_processing_config_get_mixed_pixel_min_aggressor_size(this->ptr_, TOF_ERROR_HANDLER{});
304 }
305
306 /** Set the minimum amount of bright pixels before a bright spot is classified
307 * as an aggressor
308 * @param size Minimum aggressor size
309 */
311 return tof_processing_config_set_mixed_pixel_min_aggressor_size(this->ptr_, size, TOF_ERROR_HANDLER{});
312 }
313
314 /** Get the maximum error when using three modulation frequencies
315 * @return The error
316 */
318 return tof_processing_config_get_mixed_pixel_max_error_3f(this->ptr_, TOF_ERROR_HANDLER{});
319 }
320
321 /** Set the maximum error when using three modulation frequencies
322 * @param max_error_3f The error
323 */
324 void set_mixed_pixel_max_error_3f(double max_error_3f) {
325 return tof_processing_config_set_mixed_pixel_max_error_3f(this->ptr_, max_error_3f, TOF_ERROR_HANDLER{});
326 }
327
328 /** Get the maximum amplitude for adaptive sorting
329 * @return Maximum amplitude
330 */
332 return tof_processing_config_get_mixed_pixel_adaptive_amp_max(this->ptr_, TOF_ERROR_HANDLER{});
333 }
334
335 /** Set the maximum amplitude for adaptive sorting
336 * @param adaptive_amp_max Maximum amplitude
337 */
338 void set_mixed_pixel_adaptive_amp_max(double adaptive_amp_max) {
339 return tof_processing_config_set_mixed_pixel_adaptive_amp_max(this->ptr_, adaptive_amp_max, TOF_ERROR_HANDLER{});
340 }
341
342 /** Get the minimum amplitude for adaptive sorting
343 * @return Minimum amplitude
344 */
346 return tof_processing_config_get_mixed_pixel_adaptive_amp_min(this->ptr_, TOF_ERROR_HANDLER{});
347 }
348
349 /** Set the minimum amplitude for adaptive sorting
350 * @param adaptive_amp_min Minimum amplitude
351 */
352 void set_mixed_pixel_adaptive_amp_min(double adaptive_amp_min) {
353 return tof_processing_config_set_mixed_pixel_adaptive_amp_min(this->ptr_, adaptive_amp_min, TOF_ERROR_HANDLER{});
354 }
355
356 /** Get the minimum return amplitude ratio for adaptive sorting
357 * @return Minimum return ratio
358 */
360 return tof_processing_config_get_mixed_pixel_aratio_min(this->ptr_, TOF_ERROR_HANDLER{});
361 }
362
363 /** Set the minimum return amplitude ratio for adaptive sorting
364 * @param aratio_min Minimum return ratio
365 */
366 void set_mixed_pixel_aratio_min(double aratio_min) {
367 return tof_processing_config_set_mixed_pixel_aratio_min(this->ptr_, aratio_min, TOF_ERROR_HANDLER{});
368 }
369
370 /** Get The maximum phase difference before a return is not classified as
371 * aggressor
372 * @return Phase offset before not a aggressor return
373 */
375 return tof_processing_config_get_mixed_pixel_aggressor_phi_offset(this->ptr_, TOF_ERROR_HANDLER{});
376 }
377
378 /** Set The maximum phase difference before a return is not classified as
379 * aggressor
380 * @param aggressor_phi_offset Phase offset before not a aggressor return
381 */
382 void set_mixed_pixel_aggressor_phi_offset(double aggressor_phi_offset) {
383 return tof_processing_config_set_mixed_pixel_aggressor_phi_offset(this->ptr_, aggressor_phi_offset, TOF_ERROR_HANDLER{});
384 }
385
386 /** Get whether hdr is enabled. High dynamic range allows you to separate
387 * depth with high intensity difference. This is mostly useful when the sensor
388 * is being saturated.
389 * @return Enabled
390 */
391 bool get_hdr_enabled() const {
392 return tof_processing_config_get_hdr_enabled(this->ptr_, TOF_ERROR_HANDLER{});
393 }
394
395 /** Set whether hdr is enabled. High dynamic range allows you to separate
396 * depth with high intensity difference. This is mostly useful when the sensor
397 * is being saturated.
398 * @param enabled Enabled
399 */
400 void set_hdr_enabled(bool enabled) {
401 return tof_processing_config_set_hdr_enabled(this->ptr_, enabled, TOF_ERROR_HANDLER{});
402 }
403
404 /** Get whether averaging is enabled. The average process allows you to
405 * average multiple frames together at the cost of frame rate
406 * @return Enabled
407 */
408 bool get_average_enabled() const {
409 return tof_processing_config_get_average_enabled(this->ptr_, TOF_ERROR_HANDLER{});
410 }
411
412 /** Set whether averaging is enabled. The average process allows you to
413 * average multiple frames together at the cost of frame rate
414 * @param enabled Enabled
415 */
416 void set_average_enabled(bool enabled) {
417 return tof_processing_config_set_average_enabled(this->ptr_, enabled, TOF_ERROR_HANDLER{});
418 }
419
420 /** Get the number of frames to average together
421 * @return Number of frames
422 */
423 size_t get_average_nframes() const {
424 return tof_processing_config_get_average_nframes(this->ptr_, TOF_ERROR_HANDLER{});
425 }
426
427 /** Set the number of frames to average together
428 * @param nframes Number of frames
429 */
430 void set_average_nframes(size_t nframes) {
431 return tof_processing_config_set_average_nframes(this->ptr_, nframes, TOF_ERROR_HANDLER{});
432 }
433
434 /** Get whether the temporal filter is enabled. The temporal filter is a
435 * running average as long as the values are within sigma standard deviations
436 * of each other
437 * @return Enabled
438 */
439 bool get_temporal_enabled() const {
440 return tof_processing_config_get_temporal_enabled(this->ptr_, TOF_ERROR_HANDLER{});
441 }
442
443 /** Set whether the temporal filter is enabled. The temporal filter is a
444 * running average as long as the values are within sigma standard deviations
445 * of each other
446 * @param enabled Enabled
447 */
448 void set_temporal_enabled(bool enabled) {
449 return tof_processing_config_set_temporal_enabled(this->ptr_, enabled, TOF_ERROR_HANDLER{});
450 }
451
452 /** Get the number of standard deviations before resetting the running average
453 * @return The standard deviation
454 */
455 double get_temporal_sigma() const {
456 return tof_processing_config_get_temporal_sigma(this->ptr_, TOF_ERROR_HANDLER{});
457 }
458
459 /** Set the number of standard deviations before resetting the running average
460 * @param sigma The standard deviation
461 */
462 void set_temporal_sigma(double sigma) {
463 return tof_processing_config_set_temporal_sigma(this->ptr_, sigma, TOF_ERROR_HANDLER{});
464 }
465
466 /** Get whether to use common data or amplitude data to determine noisiness of
467 * signal
468 * @return Use common
469 */
471 return tof_processing_config_get_temporal_use_common(this->ptr_, TOF_ERROR_HANDLER{});
472 }
473
474 /** Set whether to use common data or amplitude data to determine noisiness of
475 * signal
476 * @param use_common Use common
477 */
478 void set_temporal_use_common(bool use_common) {
479 return tof_processing_config_set_temporal_use_common(this->ptr_, use_common, TOF_ERROR_HANDLER{});
480 }
481
482 /** Get the maximum number of frames to average together
483 * @return Number of frames
484 */
485 size_t get_temporal_nframes() const {
486 return tof_processing_config_get_temporal_nframes(this->ptr_, TOF_ERROR_HANDLER{});
487 }
488
489 /** Set the maximum number of frames to average together
490 * @param nframes Number of frames
491 */
492 void set_temporal_nframes(size_t nframes) {
493 return tof_processing_config_set_temporal_nframes(this->ptr_, nframes, TOF_ERROR_HANDLER{});
494 }
495
496 /** Get whether the gaussian blur is enabled. This is a standard gaussian blur
497 * applied over the depth image
498 * @return Enabled
499 */
500 bool get_gaussian_enabled() const {
501 return tof_processing_config_get_gaussian_enabled(this->ptr_, TOF_ERROR_HANDLER{});
502 }
503
504 /** Set whether the gaussian blur is enabled. This is a standard gaussian blur
505 * applied over the depth image
506 * @param enabled Enabled
507 */
508 void set_gaussian_enabled(bool enabled) {
509 return tof_processing_config_set_gaussian_enabled(this->ptr_, enabled, TOF_ERROR_HANDLER{});
510 }
511
512 /** Get the gaussian region size
513 * @return Region size, 3x3 and 5x5 are supported
514 */
515 size_t get_gaussian_size() const {
516 return tof_processing_config_get_gaussian_size(this->ptr_, TOF_ERROR_HANDLER{});
517 }
518
519 /** Set the gaussian region size
520 * @param size Region size, 3x3 and 5x5 are supported
521 */
522 void set_gaussian_size(size_t size) {
523 return tof_processing_config_set_gaussian_size(this->ptr_, size, TOF_ERROR_HANDLER{});
524 }
525
526 /** Get the gaussian sigma
527 * @return The standard deviation
528 */
529 double get_gaussian_sigma() const {
530 return tof_processing_config_get_gaussian_sigma(this->ptr_, TOF_ERROR_HANDLER{});
531 }
532
533 /** Set the gaussian sigma
534 * @param sigma The standard deviation
535 */
536 void set_gaussian_sigma(double sigma) {
537 return tof_processing_config_set_gaussian_sigma(this->ptr_, sigma, TOF_ERROR_HANDLER{});
538 }
539
540 /** Get whether the median filter is enabled. This is a standard median filter
541 * applied over the depth image
542 * @return Enabled
543 */
544 bool get_median_enabled() const {
545 return tof_processing_config_get_median_enabled(this->ptr_, TOF_ERROR_HANDLER{});
546 }
547
548 /** Set whether the median filter is enabled. This is a standard median filter
549 * applied over the depth image
550 * @param enabled Enabled
551 */
552 void set_median_enabled(bool enabled) {
553 return tof_processing_config_set_median_enabled(this->ptr_, enabled, TOF_ERROR_HANDLER{});
554 }
555
556 /** Get the median region size
557 * @return Region size, 3x3 and 5x5 are supported
558 */
559 size_t get_median_size() const {
560 return tof_processing_config_get_median_size(this->ptr_, TOF_ERROR_HANDLER{});
561 }
562
563 /** Set the median region size
564 * @param size Region size, 3x3 and 5x5 are supported
565 */
566 void set_median_size(size_t size) {
567 return tof_processing_config_set_median_size(this->ptr_, size, TOF_ERROR_HANDLER{});
568 }
569
570 /** Get whether the bilateral filter is enabled. This filter averages the
571 * current pixel with neighboring ones if they're within the specified
572 * standard deviation
573 * @return Enabled
574 */
576 return tof_processing_config_get_bilateral_enabled(this->ptr_, TOF_ERROR_HANDLER{});
577 }
578
579 /** Set whether the bilateral filter is enabled. This filter averages the
580 * current pixel with neighboring ones if they're within the specified
581 * standard deviation
582 * @param enabled Enabled
583 */
584 void set_bilateral_enabled(bool enabled) {
585 return tof_processing_config_set_bilateral_enabled(this->ptr_, enabled, TOF_ERROR_HANDLER{});
586 }
587
588 /** Get the bilateral region size
589 * @return Region size, 3x3 and 5x5 are supported
590 */
591 size_t get_bilateral_size() const {
592 return tof_processing_config_get_bilateral_size(this->ptr_, TOF_ERROR_HANDLER{});
593 }
594
595 /** Set the bilateral region size
596 * @param size Region size, 3x3 and 5x5 are supported
597 */
598 void set_bilateral_size(size_t size) {
599 return tof_processing_config_set_bilateral_size(this->ptr_, size, TOF_ERROR_HANDLER{});
600 }
601
602 /** Get the bilateral standard deviation
603 * @return The standard deviation
604 */
605 double get_bilateral_sigma() const {
606 return tof_processing_config_get_bilateral_sigma(this->ptr_, TOF_ERROR_HANDLER{});
607 }
608
609 /** Set the bilateral standard deviation
610 * @param sigma The standard deviation
611 */
612 void set_bilateral_sigma(double sigma) {
613 return tof_processing_config_set_bilateral_sigma(this->ptr_, sigma, TOF_ERROR_HANDLER{});
614 }
615
616 /** Get Whether the local means filter is enabled.
617 * @return Enabled
618 */
620 return tof_processing_config_get_local_means_enabled(this->ptr_, TOF_ERROR_HANDLER{});
621 }
622
623 /** Set Whether the local means filter is enabled.
624 * @param enabled Enabled
625 */
626 void set_local_means_enabled(bool enabled) {
627 return tof_processing_config_set_local_means_enabled(this->ptr_, enabled, TOF_ERROR_HANDLER{});
628 }
629
630 /** Get The local means region size
631 * @return Region size
632 */
633 size_t get_local_means_size() const {
634 return tof_processing_config_get_local_means_size(this->ptr_, TOF_ERROR_HANDLER{});
635 }
636
637 /** Set The local means region size
638 * @param size Region size
639 */
640 void set_local_means_size(size_t size) {
641 return tof_processing_config_set_local_means_size(this->ptr_, size, TOF_ERROR_HANDLER{});
642 }
643
644 /** Get The local means standard deviation for how close values are
645 * @return The stand deviation
646 */
647 double get_local_means_sigma() const {
648 return tof_processing_config_get_local_means_sigma(this->ptr_, TOF_ERROR_HANDLER{});
649 }
650
651 /** Set The local means standard deviation for how close values are
652 * @param sigma The stand deviation
653 */
654 void set_local_means_sigma(double sigma) {
655 return tof_processing_config_set_local_means_sigma(this->ptr_, sigma, TOF_ERROR_HANDLER{});
656 }
657
658 /** Get whether flying pixel filter is enabled. The flying pixel filters out
659 * pixels when more than x edges are farther than x size away
660 * @return Enabled
661 */
662 bool get_flying_enabled() const {
663 return tof_processing_config_get_flying_enabled(this->ptr_, TOF_ERROR_HANDLER{});
664 }
665
666 /** Set whether flying pixel filter is enabled. The flying pixel filters out
667 * pixels when more than x edges are farther than x size away
668 * @param enabled Enabled
669 */
670 void set_flying_enabled(bool enabled) {
671 return tof_processing_config_set_flying_enabled(this->ptr_, enabled, TOF_ERROR_HANDLER{});
672 }
673
674 /** Get the shape of which surrounding pixels are checked
675 * @return The shape
676 */
677 FlyingShape get_flying_shape() const {
678 return static_cast<FlyingShape>(tof_processing_config_get_flying_shape(this->ptr_, TOF_ERROR_HANDLER{}));
679 }
680
681 /** Set the shape of which surrounding pixels are checked
682 * @param shape The shape
683 */
684 void set_flying_shape(FlyingShape shape) {
685 return tof_processing_config_set_flying_shape(this->ptr_, static_cast<tof_flying_shape>(shape), TOF_ERROR_HANDLER{});
686 }
687
688 /** Get the maximum distance allowed between surrounding pixels
689 * @return Maximum distance
690 */
691 size_t get_flying_distance() const {
692 return tof_processing_config_get_flying_distance(this->ptr_, TOF_ERROR_HANDLER{});
693 }
694
695 /** Set the maximum distance allowed between surrounding pixels
696 * @param distance Maximum distance
697 */
698 void set_flying_distance(size_t distance) {
699 return tof_processing_config_set_flying_distance(this->ptr_, distance, TOF_ERROR_HANDLER{});
700 }
701
702 /** Get the number of edges allowed to be larger than maximum distance
703 * @return Maximum edges
704 */
705 size_t get_flying_edges() const {
706 return tof_processing_config_get_flying_edges(this->ptr_, TOF_ERROR_HANDLER{});
707 }
708
709 /** Set the number of edges allowed to be larger than maximum distance
710 * @param edges Maximum edges
711 */
712 void set_flying_edges(size_t edges) {
713 return tof_processing_config_set_flying_edges(this->ptr_, edges, TOF_ERROR_HANDLER{});
714 }
715
716 /** Get another distance threshold which is scaled by the radial distance
717 * @return What to scale the radial distance by, from 0.0 to 1.0
718 */
720 return tof_processing_config_get_flying_distance_scaled(this->ptr_, TOF_ERROR_HANDLER{});
721 }
722
723 /** Set another distance threshold which is scaled by the radial distance
724 * @param scale What to scale the radial distance by, from 0.0 to 1.0
725 */
726 void set_flying_distance_scaled(float scale) {
727 return tof_processing_config_set_flying_distance_scaled(this->ptr_, scale, TOF_ERROR_HANDLER{});
728 }
729
730 /** Get whether the amplitude threshold filter is enabled. This filter filters
731 * out pixels outside of the specified values
732 * @return Enabled
733 */
735 return tof_processing_config_get_amp_threshold_enabled(this->ptr_, TOF_ERROR_HANDLER{});
736 }
737
738 /** Set whether the amplitude threshold filter is enabled. This filter filters
739 * out pixels outside of the specified values
740 * @param enabled Enabled
741 */
742 void set_amp_threshold_enabled(bool enabled) {
743 return tof_processing_config_set_amp_threshold_enabled(this->ptr_, enabled, TOF_ERROR_HANDLER{});
744 }
745
746 /** Get the minimum amplitude allowed
747 * @return Minimum value
748 */
749 double get_amp_threshold_min() const {
750 return tof_processing_config_get_amp_threshold_min(this->ptr_, TOF_ERROR_HANDLER{});
751 }
752
753 /** Set the minimum amplitude allowed
754 * @param min Minimum value
755 */
756 void set_amp_threshold_min(double min) {
757 return tof_processing_config_set_amp_threshold_min(this->ptr_, min, TOF_ERROR_HANDLER{});
758 }
759
760 /** Get the maximum amplitude allowed
761 * @return Maximum value
762 */
763 double get_amp_threshold_max() const {
764 return tof_processing_config_get_amp_threshold_max(this->ptr_, TOF_ERROR_HANDLER{});
765 }
766
767 /** Set the maximum amplitude allowed
768 * @param max Maximum value
769 */
770 void set_amp_threshold_max(double max) {
771 return tof_processing_config_set_amp_threshold_max(this->ptr_, max, TOF_ERROR_HANDLER{});
772 }
773
774 /** Get whether the distance threshold filter is enabled. This filter filters
775 * out pixels outside of the specified values
776 * @return Enabled
777 */
779 return tof_processing_config_get_dist_threshold_enabled(this->ptr_, TOF_ERROR_HANDLER{});
780 }
781
782 /** Set whether the distance threshold filter is enabled. This filter filters
783 * out pixels outside of the specified values
784 * @param enabled Enabled
785 */
786 void set_dist_threshold_enabled(bool enabled) {
787 return tof_processing_config_set_dist_threshold_enabled(this->ptr_, enabled, TOF_ERROR_HANDLER{});
788 }
789
790 /** Get the minimum distance allowed
791 * @return Minimum value
792 */
793 double get_dist_threshold_min() const {
794 return tof_processing_config_get_dist_threshold_min(this->ptr_, TOF_ERROR_HANDLER{});
795 }
796
797 /** Set the minimum distance allowed
798 * @param min Minimum value
799 */
800 void set_dist_threshold_min(double min) {
801 return tof_processing_config_set_dist_threshold_min(this->ptr_, min, TOF_ERROR_HANDLER{});
802 }
803
804 /** Get the maximum distance allowed
805 * @return Maximum value
806 */
807 double get_dist_threshold_max() const {
808 return tof_processing_config_get_dist_threshold_max(this->ptr_, TOF_ERROR_HANDLER{});
809 }
810
811 /** Set the maximum distance allowed
812 * @param max Maximum value
813 */
814 void set_dist_threshold_max(double max) {
815 return tof_processing_config_set_dist_threshold_max(this->ptr_, max, TOF_ERROR_HANDLER{});
816 }
817
818 /** Get whether the amplitude dot segmentation filter is enabled. This filter
819 * is designed to filter out everything but the dots in cameras with dot
820 * illumination. It has also proved effective at removing shadowing effects in
821 * kea
822 * @return Enabled
823 */
825 return tof_processing_config_get_amp_dot_segment_enabled(this->ptr_, TOF_ERROR_HANDLER{});
826 }
827
828 /** Set whether the amplitude dot segmentation filter is enabled. This filter
829 * is designed to filter out everything but the dots in cameras with dot
830 * illumination. It has also proved effective at removing shadowing effects in
831 * kea
832 * @param enabled Enabled
833 */
834 void set_amp_dot_segment_enabled(bool enabled) {
835 return tof_processing_config_set_amp_dot_segment_enabled(this->ptr_, enabled, TOF_ERROR_HANDLER{});
836 }
837
838 /** Get the minimum corrected amplitude that is allowed
839 * @return Amplitude threshold
840 */
842 return tof_processing_config_get_amp_dot_segment_threshold(this->ptr_, TOF_ERROR_HANDLER{});
843 }
844
845 /** Set the minimum corrected amplitude that is allowed
846 * @param threshold Amplitude threshold
847 */
848 void set_amp_dot_segment_threshold(float threshold) {
849 return tof_processing_config_set_amp_dot_segment_threshold(this->ptr_, threshold, TOF_ERROR_HANDLER{});
850 }
851
852 /** Get the distance after which amplitude is increased instead of decreased
853 * @return Radial midpoint
854 */
856 return tof_processing_config_get_amp_dot_segment_midpoint(this->ptr_, TOF_ERROR_HANDLER{});
857 }
858
859 /** Set the distance after which amplitude is increased instead of decreased
860 * @param midpoint Radial midpoint
861 */
862 void set_amp_dot_segment_midpoint(float midpoint) {
863 return tof_processing_config_set_amp_dot_segment_midpoint(this->ptr_, midpoint, TOF_ERROR_HANDLER{});
864 }
865
866 /** Get the maximum amount of correction that can be performed on the distance
867 * component
868 * @return Max radial correction
869 */
871 return tof_processing_config_get_amp_dot_segment_max_correction(this->ptr_, TOF_ERROR_HANDLER{});
872 }
873
874 /** Set the maximum amount of correction that can be performed on the distance
875 * component
876 * @param correction Max radial correction
877 */
878 void set_amp_dot_segment_max_correction(float correction) {
879 return tof_processing_config_set_amp_dot_segment_max_correction(this->ptr_, correction, TOF_ERROR_HANDLER{});
880 }
881
882 /** Get whether the common amplitude ratio threshold filter is enabled. This
883 * filter calculates the difference between the amplitude and ir data and you
884 * can set a certain threshold. This is useful to get rid of pixels that are
885 * heavily saturated with sunlight since the difference between amplitude and
886 * total ir light will be large.
887 * @return Enabled
888 */
890 return tof_processing_config_get_common_amp_ratio_enabled(this->ptr_, TOF_ERROR_HANDLER{});
891 }
892
893 /** Set whether the common amplitude ratio threshold filter is enabled. This
894 * filter calculates the difference between the amplitude and ir data and you
895 * can set a certain threshold. This is useful to get rid of pixels that are
896 * heavily saturated with sunlight since the difference between amplitude and
897 * total ir light will be large.
898 * @param enabled Enabled
899 */
900 void set_common_amp_ratio_enabled(bool enabled) {
901 return tof_processing_config_set_common_amp_ratio_enabled(this->ptr_, enabled, TOF_ERROR_HANDLER{});
902 }
903
904 /** Get the maximum allowed ratio
905 * @return The threshold
906 */
908 return tof_processing_config_get_common_amp_ratio_threshold(this->ptr_, TOF_ERROR_HANDLER{});
909 }
910
911 /** Set the maximum allowed ratio
912 * @param threshold The threshold
913 */
914 void set_common_amp_ratio_threshold(float threshold) {
915 return tof_processing_config_set_common_amp_ratio_threshold(this->ptr_, threshold, TOF_ERROR_HANDLER{});
916 }
917
918 /** Get whether the morph erode filter is enabled. The morph erode filter
919 * removes pixels that have no neighboring (correct) pixels.
920 * @return Enabled
921 */
923 return tof_processing_config_get_morph_erode_enabled(this->ptr_, TOF_ERROR_HANDLER{});
924 }
925
926 /** Set whether the morph erode filter is enabled. The morph erode filter
927 * removes pixels that have no neighboring (correct) pixels.
928 * @param enabled Enabled
929 */
930 void set_morph_erode_enabled(bool enabled) {
931 return tof_processing_config_set_morph_erode_enabled(this->ptr_, enabled, TOF_ERROR_HANDLER{});
932 }
933
934 /** Get the shape of the neighboring pixels.
935 * @return The shape
936 */
937 FlyingShape get_morph_erode_shape() const {
938 return static_cast<FlyingShape>(tof_processing_config_get_morph_erode_shape(this->ptr_, TOF_ERROR_HANDLER{}));
939 }
940
941 /** Set the shape of the neighboring pixels.
942 * @param shape The shape
943 */
944 void set_morph_erode_shape(FlyingShape shape) {
945 return tof_processing_config_set_morph_erode_shape(this->ptr_, static_cast<tof_flying_shape>(shape), TOF_ERROR_HANDLER{});
946 }
947
948 /** Get how much to scale the radial value by
949 * @return Radial scale
950 */
951 float get_radial_scale() const {
952 return tof_processing_config_get_radial_scale(this->ptr_, TOF_ERROR_HANDLER{});
953 }
954
955 /** Set how much to scale the radial value by
956 * @param scale Radial scale
957 */
958 void set_radial_scale(float scale) {
959 return tof_processing_config_set_radial_scale(this->ptr_, scale, TOF_ERROR_HANDLER{});
960 }
961
962 /** Get how much to add to the radial value
963 * @return Radial addition
964 */
965 float get_radial_add() const {
966 return tof_processing_config_get_radial_add(this->ptr_, TOF_ERROR_HANDLER{});
967 }
968
969 /** Set how much to add to the radial value
970 * @param addition Radial addition
971 */
972 void set_radial_add(float addition) {
973 return tof_processing_config_set_radial_add(this->ptr_, addition, TOF_ERROR_HANDLER{});
974 }
975
976 /** Get how much to scale the intensity value by
977 * @return Intensity scale
978 */
979 float get_intensity_scale() const {
980 return tof_processing_config_get_intensity_scale(this->ptr_, TOF_ERROR_HANDLER{});
981 }
982
983 /** Set how much to scale the intensity value by
984 * @param scale Intensity scale
985 */
986 void set_intensity_scale(float scale) {
987 return tof_processing_config_set_intensity_scale(this->ptr_, scale, TOF_ERROR_HANDLER{});
988 }
989
990 /** Get how much to add to the intensity value
991 * @return Intensity addition
992 */
993 float get_intensity_add() const {
994 return tof_processing_config_get_intensity_add(this->ptr_, TOF_ERROR_HANDLER{});
995 }
996
997 /** Set how much to add to the intensity value
998 * @param addition Intensity addition
999 */
1000 void set_intensity_add(float addition) {
1001 return tof_processing_config_set_intensity_add(this->ptr_, addition, TOF_ERROR_HANDLER{});
1002 }
1003
1004 /** Get the characterization addition component. The characterization function
1005 * computes the sigma for the temporal and bilateral filter
1006 * @return addition
1007 */
1008 double get_char_add() const {
1009 return tof_processing_config_get_char_add(this->ptr_, TOF_ERROR_HANDLER{});
1010 }
1011
1012 /** Set the characterization addition component. The characterization function
1013 * computes the sigma for the temporal and bilateral filter
1014 * @param addition addition
1015 */
1016 void set_char_add(double addition) {
1017 return tof_processing_config_set_char_add(this->ptr_, addition, TOF_ERROR_HANDLER{});
1018 }
1019
1020 /** Get the characterization multiplication component. The characterization
1021 * function computes the sigma for the temporal and bilateral filter
1022 * @return Multiplication
1023 */
1024 double get_char_mult() const {
1025 return tof_processing_config_get_char_mult(this->ptr_, TOF_ERROR_HANDLER{});
1026 }
1027
1028 /** Set the characterization multiplication component. The characterization
1029 * function computes the sigma for the temporal and bilateral filter
1030 * @param multiplication Multiplication
1031 */
1032 void set_char_mult(double multiplication) {
1033 return tof_processing_config_set_char_mult(this->ptr_, multiplication, TOF_ERROR_HANDLER{});
1034 }
1035
1036 /** Get whether software binning is enabled
1037 * @return Enabled
1038 */
1039 bool get_binning_enabled() const {
1040 return tof_processing_config_get_binning_enabled(this->ptr_, TOF_ERROR_HANDLER{});
1041 }
1042
1043 /** Set whether software binning is enabled
1044 * @param enabled Enabled
1045 */
1046 void set_binning_enabled(bool enabled) {
1047 return tof_processing_config_set_binning_enabled(this->ptr_, enabled, TOF_ERROR_HANDLER{});
1048 }
1049
1050 /** Get the size of the area to bin, 2 would bin a 2x2 area
1051 * @return The bin size
1052 */
1053 size_t get_binning_size() const {
1054 return tof_processing_config_get_binning_size(this->ptr_, TOF_ERROR_HANDLER{});
1055 }
1056
1057 /** Set the size of the area to bin, 2 would bin a 2x2 area
1058 * @param size The bin size
1059 */
1060 void set_binning_size(size_t size) {
1061 return tof_processing_config_set_binning_size(this->ptr_, size, TOF_ERROR_HANDLER{});
1062 }
1063
1064 /** Get the binning mode to use
1065 * @return The binning mode
1066 */
1067 BinningMode get_binning_mode() const {
1068 return static_cast<BinningMode>(tof_processing_config_get_binning_mode(this->ptr_, TOF_ERROR_HANDLER{}));
1069 }
1070
1071 /** Set the binning mode to use
1072 * @param mode The binning mode
1073 */
1074 void set_binning_mode(BinningMode mode) {
1075 return tof_processing_config_set_binning_mode(this->ptr_, static_cast<tof_binning_mode>(mode), TOF_ERROR_HANDLER{});
1076 }
1077
1078 /** Get The maximum standard deviation to use, only used in the smart binning
1079 * mode
1080 * @return The standard deviation
1081 */
1082 float get_binning_sigma() const {
1083 return tof_processing_config_get_binning_sigma(this->ptr_, TOF_ERROR_HANDLER{});
1084 }
1085
1086 /** Set The maximum standard deviation to use, only used in the smart binning
1087 * mode
1088 * @param sigma The standard deviation
1089 */
1090 void set_binning_sigma(float sigma) {
1091 return tof_processing_config_set_binning_sigma(this->ptr_, sigma, TOF_ERROR_HANDLER{});
1092 }
1093
1094 /** Get the dimension of the xyz output
1095 * @return The dimension
1096 */
1097 XyzDimension get_xyz_dimension() const {
1098 return static_cast<XyzDimension>(tof_processing_config_get_xyz_dimension(this->ptr_, TOF_ERROR_HANDLER{}));
1099 }
1100
1101 /** Set the dimension of the xyz output
1102 * @param dimension The dimension
1103 */
1104 void set_xyz_dimension(XyzDimension dimension) {
1105 return tof_processing_config_set_xyz_dimension(this->ptr_, static_cast<tof_xyz_dimension>(dimension), TOF_ERROR_HANDLER{});
1106 }
1107
1108 /** Get whether rigid transformation is enabled
1109 * @return Enabled
1110 */
1112 return tof_processing_config_get_rigid_transformation_enabled(this->ptr_, TOF_ERROR_HANDLER{});
1113 }
1114
1115 /** Set whether rigid transformation is enabled
1116 * @param enabled Enabled
1117 */
1119 return tof_processing_config_set_rigid_transformation_enabled(this->ptr_, enabled, TOF_ERROR_HANDLER{});
1120 }
1121
1122 /** Get the rigid transformation 4x4 matrix
1123 * @return 4x4 transformation matrix
1124 */
1125 std::array<float, 16> get_rigid_transformation_matrix() const {
1126 std::array<float, 16> array;
1127 auto data = tof_processing_config_get_rigid_transformation_matrix(this->ptr_, TOF_ERROR_HANDLER{});
1128 std::copy(data, data + array.size(), array.data());
1129 return array;
1130 }
1131
1132 /** Set the rigid transformation 4x4 matrix
1133 * @param matrix 4x4 transformation matrix
1134 */
1135 void set_rigid_transformation_matrix(const std::array<float, 16> &matrix) {
1136 return tof_processing_config_set_rigid_transformation_matrix(this->ptr_, matrix.data(), TOF_ERROR_HANDLER{});
1137 }
1138
1139 /** Get the radial distance threshold
1140 * @return Enabled
1141 */
1143 return tof_processing_config_get_rad_dist_threshold_enabled(this->ptr_, TOF_ERROR_HANDLER{});
1144 }
1145
1146 /** Set the radial distance threshold
1147 * @param enabled Enabled
1148 */
1150 return tof_processing_config_set_rad_dist_threshold_enabled(this->ptr_, enabled, TOF_ERROR_HANDLER{});
1151 }
1152
1153 /** Get the minimum radial distance
1154 * @return Minimum
1155 */
1157 return tof_processing_config_get_rad_dist_threshold_min(this->ptr_, TOF_ERROR_HANDLER{});
1158 }
1159
1160 /** Set the minimum radial distance
1161 * @param min Minimum
1162 */
1164 return tof_processing_config_set_rad_dist_threshold_min(this->ptr_, min, TOF_ERROR_HANDLER{});
1165 }
1166
1167 /** Get the maximum radial distance
1168 * @return Maximum
1169 */
1171 return tof_processing_config_get_rad_dist_threshold_max(this->ptr_, TOF_ERROR_HANDLER{});
1172 }
1173
1174 /** Set the maximum radial distance
1175 * @param max Maximum
1176 */
1178 return tof_processing_config_set_rad_dist_threshold_max(this->ptr_, max, TOF_ERROR_HANDLER{});
1179 }
1180
1181};
1182
1183} // tof
1184} // chronoptics
1185
1186#endif
Processing that can be done.
void set_mixed_pixel_max_error_3f(double max_error_3f)
Set the maximum error when using three modulation frequencies.
float get_amp_dot_segment_midpoint() const
Get the distance after which amplitude is increased instead of decreased.
size_t get_average_nframes() const
Get the number of frames to average together.
void set_bilateral_size(size_t size)
Set the bilateral region size.
void set_mixed_pixel_enabled(bool enabled)
Set wether mixed pixel is enabled.
size_t get_flying_edges() const
Get the number of edges allowed to be larger than maximum distance.
double get_bilateral_sigma() const
Get the bilateral standard deviation.
void set_hdr_enabled(bool enabled)
Set whether hdr is enabled.
void set_basic_phase_unwrapping_max_offset(double offset)
Set the max radial offset between the two modulation frequencies.
void set_amp_dot_segment_midpoint(float midpoint)
Set the distance after which amplitude is increased instead of decreased.
bool get_phase_unwrapping_enabled() const
Get whether phase unwrapping is enabled.
void set_morph_erode_enabled(bool enabled)
Set whether the morph erode filter is enabled.
double get_mixed_pixel_adaptive_amp_min() const
Get the minimum amplitude for adaptive sorting.
bool get_hdr_enabled() const
Get whether hdr is enabled.
void set_rad_dist_threshold_max(double max)
Set the maximum radial distance.
void set_rigid_transformation_matrix(const std::array< float, 16 > &matrix)
Set the rigid transformation 4x4 matrix.
void set_temporal_nframes(size_t nframes)
Set the maximum number of frames to average together.
bool get_binning_enabled() const
Get whether software binning is enabled.
void set_amp_threshold_enabled(bool enabled)
Set whether the amplitude threshold filter is enabled.
bool get_mixed_pixel_enabled() const
Get wether mixed pixel is enabled.
float get_intensity_add() const
Get how much to add to the intensity value.
double get_mixed_pixel_aggressor_threshold() const
Get the threshold to classify a pixel as an aggressor.
bool get_gpu() const
Get whether processing on the gpu is enabled.
FlyingShape get_flying_shape() const
Get the shape of which surrounding pixels are checked.
bool get_morph_erode_enabled() const
Get whether the morph erode filter is enabled.
float get_radial_add() const
Get how much to add to the radial value.
double get_mixed_pixel_aratio_min() const
Get the minimum return amplitude ratio for adaptive sorting.
std::array< float, 16 > get_rigid_transformation_matrix() const
Get the rigid transformation 4x4 matrix.
void set_temporal_sigma(double sigma)
Set the number of standard deviations before resetting the running average.
double get_temporal_sigma() const
Get the number of standard deviations before resetting the running average.
void set_binning_sigma(float sigma)
Set The maximum standard deviation to use, only used in the smart binning mode.
void set_mixed_pixel_min_aggressor_size(int32_t size)
Set the minimum amount of bright pixels before a bright spot is classified as an aggressor.
void set_common_amp_ratio_threshold(float threshold)
Set the maximum allowed ratio.
bool get_local_means_enabled() const
Get Whether the local means filter is enabled.
void set_local_means_size(size_t size)
Set The local means region size.
void set_basic_phase_unwrapping_enabled(bool enabled)
Set whether basic phase unwrapping is enabled.
void set_temporal_use_common(bool use_common)
Set whether to use common data or amplitude data to determine noisiness of signal.
void set_gaussian_sigma(double sigma)
Set the gaussian sigma.
void set_average_nframes(size_t nframes)
Set the number of frames to average together.
ProcessingConfig()
Create default processing config.
float get_intensity_scale() const
Get how much to scale the intensity value by.
bool get_temporal_use_common() const
Get whether to use common data or amplitude data to determine noisiness of signal.
bool get_common_amp_ratio_enabled() const
Get whether the common amplitude ratio threshold filter is enabled.
double get_char_mult() const
Get the characterization multiplication component.
void set_binning_enabled(bool enabled)
Set whether software binning is enabled.
bool get_rigid_transformation_enabled() const
Get whether rigid transformation is enabled.
void set_mixed_pixel_sort_mode(MpSortMode sort_mode)
Set what output is selected.
float get_mpi_detect_aratio() const
Get The amplitude ratio value.
double get_gaussian_sigma() const
Get the gaussian sigma.
void set_mixed_pixel_aggressor_phi_offset(double aggressor_phi_offset)
Set The maximum phase difference before a return is not classified as aggressor.
void set_amp_dot_segment_max_correction(float correction)
Set the maximum amount of correction that can be performed on the distance component.
double get_mixed_pixel_aggressor_phi_offset() const
Get The maximum phase difference before a return is not classified as aggressor.
double get_mixed_pixel_adaptive_amp_max() const
Get the maximum amplitude for adaptive sorting.
double get_mixed_pixel_aratio() const
Get the amplitude ratio for detecting MPI.
void set_radial_add(float addition)
Set how much to add to the radial value.
size_t get_gaussian_size() const
Get the gaussian region size.
bool get_flying_enabled() const
Get whether flying pixel filter is enabled.
void set_amp_threshold_max(double max)
Set the maximum amplitude allowed.
void set_amp_dot_segment_threshold(float threshold)
Set the minimum corrected amplitude that is allowed.
void set_char_add(double addition)
Set the characterization addition component.
void set_flying_enabled(bool enabled)
Set whether flying pixel filter is enabled.
void set_char_mult(double multiplication)
Set the characterization multiplication component.
void set_flying_edges(size_t edges)
Set the number of edges allowed to be larger than maximum distance.
double get_phase_unwrapping_max_offset() const
Get The maximum distance between ideal location and actual.
void set_flying_distance(size_t distance)
Set the maximum distance allowed between surrounding pixels.
float get_amp_dot_segment_max_correction() const
Get the maximum amount of correction that can be performed on the distance component.
bool get_temporal_enabled() const
Get whether the temporal filter is enabled.
void set_mpi_detect_enabled(bool enabled)
Set wether mpi detect is enabled.
float get_common_amp_ratio_threshold() const
Get the maximum allowed ratio.
void set_binning_size(size_t size)
Set the size of the area to bin, 2 would bin a 2x2 area.
bool get_bilateral_enabled() const
Get whether the bilateral filter is enabled.
size_t get_local_means_size() const
Get The local means region size.
float get_binning_sigma() const
Get The maximum standard deviation to use, only used in the smart binning mode.
bool get_median_enabled() const
Get whether the median filter is enabled.
bool get_amp_threshold_enabled() const
Get whether the amplitude threshold filter is enabled.
float get_mpi_detect_phi_diff() const
Get the phase difference ratio.
void set_amp_threshold_min(double min)
Set the minimum amplitude allowed.
void set_median_enabled(bool enabled)
Set whether the median filter is enabled.
void set_mixed_pixel_aggressor_threshold(double threshold)
Set the threshold to classify a pixel as an aggressor.
void set_phase_unwrapping_enabled(bool enabled)
Set whether phase unwrapping is enabled.
FlyingShape get_morph_erode_shape() const
Get the shape of the neighboring pixels.
void set_rad_dist_threshold_enabled(bool enabled)
Set the radial distance threshold.
void set_rigid_transformation_enabled(bool enabled)
Set whether rigid transformation is enabled.
MpSortMode get_mixed_pixel_sort_mode() const
Get what output is selected.
BinningMode get_binning_mode() const
Get the binning mode to use.
void set_gaussian_size(size_t size)
Set the gaussian region size.
void set_amp_dot_segment_enabled(bool enabled)
Set whether the amplitude dot segmentation filter is enabled.
int32_t get_mixed_pixel_min_aggressor_size() const
Get the minimum amount of bright pixels before a bright spot is classified as an aggressor.
double get_mixed_pixel_max_error_3f() const
Get the maximum error when using three modulation frequencies.
void set_mixed_pixel_aratio_min(double aratio_min)
Set the minimum return amplitude ratio for adaptive sorting.
void set_local_means_sigma(double sigma)
Set The local means standard deviation for how close values are.
void write(StringView file_location) const
Write processing config to disk.
double get_rad_dist_threshold_min() const
Get the minimum radial distance.
void set_rad_dist_threshold_min(double min)
Set the minimum radial distance.
void set_intensity_scale(float scale)
Set how much to scale the intensity value by.
void set_mixed_pixel_phi_diff(double phi_diff)
Set the phase difference for detecting MPI.
bool get_calibration_enabled() const
Get whether the calibration is applied.
double get_rad_dist_threshold_max() const
Get the maximum radial distance.
float get_flying_distance_scaled() const
Get another distance threshold which is scaled by the radial distance.
void set_temporal_enabled(bool enabled)
Set whether the temporal filter is enabled.
bool get_rad_dist_threshold_enabled() const
Get the radial distance threshold.
void set_local_means_enabled(bool enabled)
Set Whether the local means filter is enabled.
size_t get_binning_size() const
Get the size of the area to bin, 2 would bin a 2x2 area.
void set_calibration_enabled(bool enabled)
Set whether the calibration is applied.
double get_mixed_pixel_amp_min() const
Get minimum amplitude that pixel needs to have to apply mixed pixel to it.
void set_xyz_dimension(XyzDimension dimension)
Set the dimension of the xyz output.
void set_common_amp_ratio_enabled(bool enabled)
Set whether the common amplitude ratio threshold filter is enabled.
bool get_average_enabled() const
Get whether averaging is enabled.
void set_radial_scale(float scale)
Set how much to scale the radial value by.
void set_mixed_pixel_amp_min(double amp_min)
Set minimum amplitude that pixel needs to have to apply mixed pixel to it.
void set_phase_unwrapping_max_offset(double max_offset)
Set The maximum distance between ideal location and actual.
void set_dist_threshold_enabled(bool enabled)
Set whether the distance threshold filter is enabled.
double get_dist_threshold_max() const
Get the maximum distance allowed.
void set_flying_distance_scaled(float scale)
Set another distance threshold which is scaled by the radial distance.
void set_morph_erode_shape(FlyingShape shape)
Set the shape of the neighboring pixels.
XyzDimension get_xyz_dimension() const
Get the dimension of the xyz output.
void set_mixed_pixel_adaptive_amp_max(double adaptive_amp_max)
Set the maximum amplitude for adaptive sorting.
bool get_gaussian_enabled() const
Get whether the gaussian blur is enabled.
float get_amp_dot_segment_threshold() const
Get the minimum corrected amplitude that is allowed.
size_t get_flying_distance() const
Get the maximum distance allowed between surrounding pixels.
bool get_mpi_detect_enabled() const
Get wether mpi detect is enabled.
const char * get_mixed_pixel_lut_file() const
Get location of the mixed pixel look up table file.
double get_basic_phase_unwrapping_max_offset() const
Get the max radial offset between the two modulation frequencies.
void set_mixed_pixel_aratio(double aratio)
Set the amplitude ratio for detecting MPI.
ProcessingConfig(StringView file_location)
Load processing config from disk.
bool get_dist_threshold_enabled() const
Get whether the distance threshold filter is enabled.
void set_dist_threshold_min(double min)
Set the minimum distance allowed.
double get_amp_threshold_max() const
Get the maximum amplitude allowed.
bool get_amp_dot_segment_enabled() const
Get whether the amplitude dot segmentation filter is enabled.
void set_mpi_detect_aratio(float aratio)
Set The amplitude ratio value.
double get_local_means_sigma() const
Get The local means standard deviation for how close values are.
void set_median_size(size_t size)
Set the median region size.
void set_mixed_pixel_adaptive_amp_min(double adaptive_amp_min)
Set the minimum amplitude for adaptive sorting.
void set_mpi_detect_phi_diff(float phi_diff)
Set the phase difference ratio.
void set_mixed_pixel_lut_file(StringView file_location)
Set location of the mixed pixel look up table file.
void set_intensity_add(float addition)
Set how much to add to the intensity value.
void set_gpu(bool gpu)
Set whether processing on the gpu is enabled.
void set_dist_threshold_max(double max)
Set the maximum distance allowed.
void set_flying_shape(FlyingShape shape)
Set the shape of which surrounding pixels are checked.
ProcessingConfig(tof_processing_config_t ptr)
Construct from pointer.
double get_amp_threshold_min() const
Get the minimum amplitude allowed.
void set_binning_mode(BinningMode mode)
Set the binning mode to use.
void set_average_enabled(bool enabled)
Set whether averaging is enabled.
bool get_basic_phase_unwrapping_enabled() const
Get whether basic phase unwrapping is enabled.
void set_bilateral_enabled(bool enabled)
Set whether the bilateral filter is enabled.
double get_mixed_pixel_phi_diff() const
Get the phase difference for detecting MPI.
float get_radial_scale() const
Get how much to scale the radial value by.
double get_char_add() const
Get the characterization addition component.
void set_bilateral_sigma(double sigma)
Set the bilateral standard deviation.
size_t get_median_size() const
Get the median region size.
void set_gaussian_enabled(bool enabled)
Set whether the gaussian blur is enabled.
double get_dist_threshold_min() const
Get the minimum distance allowed.
size_t get_temporal_nframes() const
Get the maximum number of frames to average together.
size_t get_bilateral_size() const
Get the bilateral region size.