RVC  1.15.0
a product by RVBUST.
RVC.h
1 // Copyright (c) RVBUST, Inc - All rights reserved.
2 #pragma once
3 
4 #include <assert.h>
5 #include <stdbool.h>
6 #include <stddef.h>
7 #include <stdint.h>
8 
9 #include <string>
10 #include <vector>
11 
12 // Define EXPORTED for any platform
13 #if defined _WIN32 || defined __CYGWIN__
14 #ifdef RVC_WIN_EXPORT
15 #ifdef __GNUC__
16 #define RVC_EXPORT __attribute__((dllexport))
17 #else
18 #define RVC_EXPORT __declspec(dllexport) // Note: actually gcc seems to also supports this syntax.
19 #endif
20 #else
21 #ifdef __GNUC__
22 #define RVC_EXPORT __attribute__((dllimport))
23 #else
24 #define RVC_EXPORT __declspec(dllimport) // Note: actually gcc seems to also supports this syntax.
25 #endif
26 #endif
27 #define RVC_NOT_EXPORT
28 #else
29 #if __GNUC__ >= 4
30 #define RVC_EXPORT __attribute__((visibility("default")))
31 #define RVC_NOT_EXPORT __attribute__((visibility("hidden")))
32 #else
33 #define RVC_EXPORT
34 #define RVC_NOT_EXPORT
35 #endif
36 #endif
37 
42 namespace RVC {
47 typedef uint32_t HandleID;
52 struct RVC_EXPORT Handle {
57  Handle() : sid(0), gid(0) {}
64  Handle(HandleID sid_, HandleID gid_) : sid(sid_), gid(gid_) {}
70  Handle(const Handle &rhs) : sid(rhs.sid), gid(rhs.gid) {}
78  Handle &operator=(const Handle &rhs) {
79  sid = rhs.sid;
80  gid = rhs.gid;
81  return *this;
82  }
90  inline bool operator==(const Handle &rhs) { return sid == rhs.sid && gid == rhs.gid; }
98  inline bool operator!=(const Handle &rhs) { return sid != rhs.sid || gid != rhs.gid; }
99 
100  HandleID sid;
101  HandleID gid;
102 };
103 
108 struct RVC_EXPORT Size {
113  Size() : width(0), height(0) {}
120  Size(int w, int h) : width(w), height(h) {}
125  union {
126  int32_t width, cols;
127  };
132  union {
133  int32_t height, rows;
134  };
135 };
136 
145 inline bool operator==(const Size &lhs, const Size &rhs) {
146  return lhs.width == rhs.width && lhs.height == rhs.height;
147 }
156 inline bool operator!=(const Size &lhs, const Size &rhs) {
157  return lhs.width != rhs.width || lhs.height != rhs.height;
158 }
159 
164 struct RVC_EXPORT ROI {
169  ROI() : x(0), y(0), width(0), height(0) {}
178  ROI(int x, int y, int w, int h) : x(x), y(y), width(w), height(h) {}
183  int x;
188  int y;
193  int width;
198  int height;
199 };
200 
205 struct RVC_EXPORT ROIRange {
210  int x_step;
215  int y_step;
246 };
247 
256 inline bool operator==(const ROI &lhs, const ROI &rhs) {
257  return lhs.width == rhs.width && lhs.height == rhs.height && lhs.x == rhs.x && lhs.y == rhs.y;
258 }
259 
268 inline bool operator!=(const ROI &lhs, const ROI &rhs) {
269  return lhs.width != rhs.width || lhs.height != rhs.height || lhs.x != rhs.x || lhs.y != rhs.y;
270 }
276 struct RVC_EXPORT ImageType {
277  enum Enum {
278  None = 0,
279  Mono8 = 1,
280  RGB8 = 2,
281  BGR8 = 3,
282  };
289  static const char *ToString(ImageType::Enum type);
296  static size_t GetPixelSize(ImageType::Enum type);
297 };
298 
303 struct RVC_EXPORT Image {
313  static Image Create(ImageType::Enum it, const Size sz, unsigned char *data = nullptr, bool own_data = true);
314  static Image CreateFromFile(const char *addr);
321  static void Destroy(Image img, bool no_reuse = true);
325  Image Clone() const;
332  bool IsValid() const;
338  Size GetSize() const;
344  ImageType::Enum GetType() const;
350  unsigned char *GetDataPtr() const;
356  const unsigned char *GetDataConstPtr() const;
365  bool SaveImage(const char *addr) const;
371 };
372 
377 struct RVC_EXPORT DepthMap {
386  static DepthMap Create(const Size sz, double *data = nullptr, bool own_data = true);
387 
394  static void Destroy(DepthMap depthmap, bool no_reuse = true);
395 
402  bool IsValid();
408  Size GetSize();
414  double *GetDataPtr();
420  const double *GetDataConstPtr();
421 
431  bool SaveDepthMap(const char *address, bool is_m = true);
432 
438 };
439 
440 struct RVC_EXPORT ConfidenceMap {
450  static ConfidenceMap Create(const Size sz, double *data = nullptr, bool own_data = true);
451 
458  static void Destroy(ConfidenceMap confidencemap, bool no_reuse = true);
459 
466  bool IsValid();
467 
473  Size GetSize();
479  double *GetDataPtr();
485  const double *GetDataConstPtr();
486 
492 };
493 
498 struct RVC_EXPORT PointMapType {
504  enum Enum {
505  None = 0,
506  PointsOnly = 1,
507  PointsNormals = 2,
508  };
515  static const char *ToString(enum Enum e);
516 };
517 
518 struct RVC_EXPORT PointMapUnit {
522  enum Enum {
523  Meter = 0,
524  Millimeter = 1,
525  };
531  static const char *ToString(Enum e);
532 };
533 
538 struct RVC_EXPORT PointMap {
548  static PointMap Create(PointMapType::Enum pmt, const Size size, double *data = nullptr, bool owndata = true);
557  static PointMap CreateFromFile(const char *fileName, const Size sz, const PointMapUnit::Enum unit);
564  static void Destroy(PointMap pm, bool no_reuse = true);
573  bool Save(const char *fileName, const PointMapUnit::Enum unit, const bool isBinary,
574  const Image &rawImage = Image());
581  bool IsValid() const;
587  Size GetSize() const;
593  double *GetPointDataPtr();
599  double *GetNormalDataPtr();
605  const double *GetPointDataConstPtr() const;
611  const double *GetNormalDataConstPtr() const;
612 
624  bool GetPointMapSeperated(double *x, double *y, double *z, const double scale = 1.0);
625 
626  /*
627  * @brief clone the point data
628  * return PointMap
629  */
630 
631  PointMap Clone() const;
632 
642  uint64_t GetTimestamp() const;
643 
654  bool SetTimestamp(const uint64_t timestamp);
655 
661 };
662 
663 struct RVC_EXPORT Mesh {
664  static Mesh CreateFromPointMapData(const Size &size, const double *data = nullptr,
665  const double &z_threshold = 0.01);
666  static Mesh CreateFromPointMap(const PointMap &pm, const double &z_threshold = 0.01);
667 
668  static void Destroy(Mesh mesh, bool no_reuse = true);
669  bool IsValid() const;
670  Size GetSize() const;
671  double *GetMeshPointDataPtr();
672  int *GetMeshIndexDataPtr();
673  const double *GetMeshPointDataConstPtr() const;
674  const int *GetMeshIndexDataConstPtr() const;
675  const int &GetMeshIndexNum() const;
676  bool Save(const char *file, const PointMapUnit::Enum unit = PointMapUnit::Meter);
677  Mesh Clone() const;
678  Handle m_handle;
679 };
680 
681 struct RVC_EXPORT CorrespondMap {
682  static CorrespondMap Create(const Size sz, double *data = nullptr, bool own_data = true);
683  static void Destroy(CorrespondMap correspondMap, bool no_reuse = true);
684 
685  bool IsValid();
686  Size GetSize();
687  double *GetDataPtr();
688  const double *GetDataConstPtr();
689 
690  Handle m_handle;
691 };
692 
698 RVC_EXPORT int GetLastError();
699 
705 RVC_EXPORT const char *GetVersion();
706 
712 RVC_EXPORT const char *GetLastErrorMessage();
713 
720 enum CameraID {
721  CameraID_NONE = 0,
722  CameraID_0 = 1 << 0,
723  CameraID_1 = 1 << 1,
724  CameraID_2 = 1 << 2,
725  CameraID_3 = 1 << 3,
726  CameraID_Left = CameraID_0,
727  CameraID_Right = CameraID_1,
728  CameraID_Both = CameraID_Left | CameraID_Right,
729  CameraID_Extra = CameraID_2
730 };
731 
737 enum PortType {
738  PortType_NONE = 0,
739  PortType_USB = 1,
740  PortType_GIGE = 2,
741 };
742 
751  NetworkType_DHCP = 0,
752  NetworkType_STATIC = 1,
753 };
754 
761  ProjectorColor_None = 0,
762  ProjectorColor_Red = 1,
763  ProjectorColor_Green = 2,
764  ProjectorColor_Blue = 4,
765  ProjectorColor_White = 8,
766  ProjectorColor_ALL = ProjectorColor_Red | ProjectorColor_Green | ProjectorColor_Blue | ProjectorColor_White,
767 };
768 
774  ProtectiveCoverStatus_Unknown = 0,
775  ProtectiveCoverStatus_Closed = 1,
776  ProtectiveCoverStatus_Closing = 2,
777  ProtectiveCoverStatus_Open = 3,
778  ProtectiveCoverStatus_Opening = 4,
779 };
780 
786  BalanceSelector_None = 0,
787  BalanceSelector_Red,
788  BalanceSelector_Green,
789  BalanceSelector_Blue,
790 };
791 
797  NetworkDevice_LightMachine = 0,
798  NetworkDevice_LeftCamera = 1,
799  NetworkDevice_RightCamera = 2,
800  NetworkDevice_ExtraCamera = 3,
801 };
802 
809  NetworkDeviceStatus_OK,
810  NetworkDeviceStatus_Not_Reachable,
811  NetworkDeviceStatus_In_Use,
812  NetworkDeviceStatus_Conflict,
813 };
814 
821  CaptureMode_Fast = 1 << 0,
822  CaptureMode_Normal = 1 << 1,
823  CaptureMode_Ultra = 1 << 2,
824  CaptureMode_Robust = 1 << 3, // [deprecated] CaptureMode_Robust is deprecated! Use scan_times instead.
825  CaptureMode_AntiInterReflection = 1 << 4,
826  CaptureMode_SwingLineScan = 1 << 5,
827  CaptureMode_FixedLineScan = 1 << 6,
828  CaptureMode_LineArrayShift = 1 << 7,
829  CaptureMode_All = CaptureMode_Fast | CaptureMode_Normal | CaptureMode_Ultra | CaptureMode_Robust |
830  CaptureMode_AntiInterReflection | CaptureMode_SwingLineScan | CaptureMode_FixedLineScan |
831  CaptureMode_LineArrayShift,
832 };
833 
855 
870 
885 };
886 
902 struct RVC_EXPORT DeviceInfo {
903  char name[32];
904  char sn[32];
905  char factroydate[32];
906  char port[32];
907  enum PortType type;
908  enum CameraID cameraid;
909  int boardmodel;
910  bool support_x2;
911  enum ProjectorColor support_color;
912  int workingdist_near_mm;
913  int workingdist_far_mm;
914  char firmware_version[128];
915  enum CaptureMode support_capture_mode;
916  bool support_x1;
917  bool support_protective_cover;
918  bool support_extra;
919  bool support_hardware_trigger;
920 };
921 
926 struct RVC_EXPORT Device {
932  static void Destroy(Device d);
939  bool IsValid() const;
944  void Print() const;
952  bool GetDeviceInfo(DeviceInfo *pinfo);
963  int SetNetworkConfig(enum NetworkDevice d, NetworkType type, const char *ip, const char *netMask,
964  const char *gateway);
976  int GetNetworkConfig(enum NetworkDevice d, NetworkType *type, char *ip, char *netMask, char *gateway, int *status);
985  int AutoConfigureNetwork();
993  bool UpgradeFirmware(const char *device_firmware_path, const char *config_data_path);
1000  bool IsFirmwareMatch(void);
1006 };
1007 
1013 struct RVC_EXPORT SystemListDeviceType {
1018  enum Enum {
1019  None = 0,
1020  USB = 1 << 0,
1021  GigE = 1 << 1,
1022  All = USB | GigE,
1023  };
1030  static const char *ToString(const SystemListDeviceType::Enum e);
1031 };
1032 
1039 RVC_EXPORT bool SystemInit();
1046 RVC_EXPORT bool SystemIsInited();
1051 RVC_EXPORT void SystemShutdown();
1052 
1053 
1065 RVC_EXPORT int SystemListDevices(Device *pdevices, size_t size, size_t *actual_size,
1066  SystemListDeviceType::Enum opt = SystemListDeviceType::All);
1067 
1074 RVC_EXPORT Device SystemFindDevice(const char *serialNumber);
1075 
1081 RVC_EXPORT void SystemSetLoggerName(const char *loggerName);
1082 
1083 
1084 
1085 enum CameraTempSelector {
1086  CameraTempSelector_Camera,
1087  CameraTempSelector_CoreBoard,
1088  CameraTempSelector_FpgaCore,
1089  CameraTempSelector_Framegrabberboard,
1090  CameraTempSelector_Sensor,
1091  CameraTempSelector_SensorBoard,
1092 };
1093 
1094 enum SmoothnessLevel { SmoothnessLevel_Off, SmoothnessLevel_Weak, SmoothnessLevel_Normal, SmoothnessLevel_Strong };
1095 
1096 // UserPtr
1097 typedef void *UserPtr;
1098 
1103 struct RVC_EXPORT X1 {
1115  calc_normal = false;
1116  transform_to_camera = true;
1117  use_auto_noise_removal = true;
1118  noise_removal_distance = 0;
1119  noise_removal_point_number = 40;
1120  light_contrast_threshold = 3;
1121  phase_filter_range = 0;
1122  projector_brightness = 240;
1123  exposure_time_2d = 11;
1124  exposure_time_3d = 11;
1125  gain_2d = 0.f;
1126  gain_3d = 0.f;
1127  hdr_exposure_times = 0;
1128  hdr_exposuretime_content[0] = 11;
1129  hdr_exposuretime_content[1] = 20;
1130  hdr_exposuretime_content[2] = 50;
1131  hdr_gain_3d[0] = 0;
1132  hdr_gain_3d[1] = 0;
1133  hdr_gain_3d[2] = 0;
1134 
1135  hdr_scan_times[0] = 1;
1136  hdr_scan_times[1] = 1;
1137  hdr_scan_times[2] = 1;
1138 
1139  hdr_projector_brightness[0] = 240;
1140  hdr_projector_brightness[1] = 240;
1141  hdr_projector_brightness[2] = 240;
1142  calc_normal_radius = 5;
1143  gamma_2d = 1.f;
1144  gamma_3d = 1.f;
1145  use_projector_capturing_2d_image = true;
1146  smoothness = SmoothnessLevel_Off;
1147  downsample_distance = 0.0;
1148  capture_mode = CaptureMode_Normal;
1149  confidence_threshold = 0;
1150  roi = RVC::ROI();
1151  truncate_z_min = -9999.f;
1152  truncate_z_max = 9999.f;
1153  bilateral_filter_kernal_size = 0;
1154  bilateral_filter_depth_sigma = 0;
1155  bilateral_filter_space_sigma = 0;
1156  scan_times = 1;
1157  use_auto_bilateral_filter = true;
1158  reflection_filter_threshold = 0;
1159  smooth_sigma = 1.75;
1160  enable_2d_in_capture = true;
1161  }
1178  [[deprecated]] int filter_range;
1231  float gain_2d;
1236  float gain_3d;
1247  int hdr_exposuretime_content[3];
1252  float hdr_gain_3d[3];
1253 
1258  int hdr_scan_times[3];
1259 
1264  int hdr_projector_brightness[3];
1268  unsigned int calc_normal_radius;
1273  float gamma_2d;
1278  float gamma_3d;
1288  [[deprecated(
1289  "smoothness has been deprecated in CPU version,use smooth_sigma instead")]] SmoothnessLevel smoothness;
1290 
1296 
1302 
1309 
1317 
1324 
1331 
1337  [[deprecated("Use smooth_sigma instead")]] int bilateral_filter_kernal_size;
1338 
1344  [[deprecated("Use smooth_sigma instead")]] double bilateral_filter_depth_sigma;
1345 
1351  [[deprecated("Use smooth_sigma instead")]] double bilateral_filter_space_sigma;
1352 
1357 
1364  [[deprecated("Use smooth_sigma instead")]] bool use_auto_bilateral_filter;
1365 
1373 
1381 
1386  };
1399  CoordinateSelect_Disabled,
1400  CoordinateSelect_Camera,
1401  CoordinateSelect_CaliBoard,
1402  };
1403 
1405  : coordinate_select(CoordinateSelect_Disabled), transform{1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1} {}
1406 
1413 
1418  double transform[16];
1419  };
1420 
1425  Image image;
1426  };
1427 
1432  Image image;
1433  PointMap pointmap;
1434  DepthMap depthmap;
1435  ConfidenceMap confidencemap;
1436  };
1437 
1441  typedef void (*CollectionCallBackPtr)(X1::CollectionCallBackInfo, X1::CaptureOptions, UserPtr);
1442  typedef void (*CalculationCallBackPtr)(X1::CalculationCallBackInfo, X1::CaptureOptions, UserPtr);
1443 
1453  static X1 Create(const Device &d, enum CameraID camid = CameraID_Left);
1461  static void Destroy(X1 &x);
1470  bool IsValid();
1479  bool Open();
1485  void Close();
1494  bool IsOpen();
1503  bool IsPhysicallyConnected();
1510  bool OpenProtectiveCover();
1517  bool OpenProtectiveCoverAsync();
1524  bool CloseProtectiveCover();
1531  bool CloseProtectiveCoverAsync();
1538  bool ResetProtectiveCover();
1539 
1544  bool GetProtectiveCoverStatus(ProtectiveCoverStatus &status);
1555  bool SetCollectionCallBack(X1::CollectionCallBackPtr cb, UserPtr ctx);
1556 
1567  bool SetCalculationCallBack(X1::CalculationCallBackPtr cb, UserPtr ctx);
1568 
1578  bool Capture(const CaptureOptions &opts);
1586  bool Capture();
1595  bool Capture2D(const CaptureOptions &opts);
1603  bool Capture2D();
1611  bool SetBandwidth(float percent);
1612 
1620  bool GetBandwidth(float &percent);
1621 
1629  bool SetCustomTransformation(const CustomTransformOptions &opts);
1637  bool GetCustomTransformation(CustomTransformOptions &opts);
1644  bool SaveEncodedImagesData(const char *addr);
1645 
1651  Image GetImage();
1657  DepthMap GetDepthMap();
1663  PointMap GetPointMap();
1669  ConfidenceMap GetConfidenceMap();
1684  bool GetExtrinsicMatrix(float *matrix);
1699  bool GetIntrinsicParameters(float *instrinsic_matrix, float *distortion);
1706  bool GetProjectorTemperature(float &temperature);
1714  [[deprecated]] bool GetCameraTemperature(CameraTempSelector seletor, float &temperature);
1723  bool SetBalanceRatio(BalanceSelector selector, float value);
1732  bool GetBalanceRatio(BalanceSelector selector, float *value);
1733 
1743  bool GetBalanceRange(BalanceSelector selector, float *min_value, float *max_value);
1744 
1755  bool AutoWhiteBalance(int wb_times = 10, const CaptureOptions &opts = CaptureOptions(),
1756  const RVC::ROI &roi = RVC::ROI());
1757 
1766  bool GetExposureTimeRange(int *min_value, int *max_value);
1767 
1776  bool GetGainRange(float *min_value, float *max_value);
1777 
1786  bool GetGammaRange(float *min_value, float *max_value);
1787 
1795  bool SaveCaptureOptionParameters(const X1::CaptureOptions &opts);
1796 
1804  bool LoadCaptureOptionParameters(X1::CaptureOptions &opts);
1805 
1813  bool GetAutoCaptureSetting(CaptureOptions &opts, const ROI &roi = ROI());
1814 
1824  bool GetAutoHdrCaptureSetting(CaptureOptions &opts, const ROI &roi);
1825 
1840  bool GetAutoNoiseRemovalSetting(CaptureOptions &opts);
1841 
1848  bool LoadSettingFromFile(const char *filename);
1849 
1856  bool SaveSettingToFile(const char *filename);
1857 
1864  bool CheckRoi(ROI roi);
1865 
1871  ROI AutoAdjustRoi(ROI roi = ROI());
1872 
1876  bool GetRoiRange(ROIRange &range);
1877 
1885  bool GetCameraResolution(Size &resolution);
1886 
1894  bool GetAuto2DExposureTime(CaptureOptions &opts, const ROI &roi = ROI());
1895 
1901  Mesh GetMesh();
1902 
1911  bool SetCurrentUserSet(const int &id);
1912 
1920  bool GetCurrentUserSet(int &id);
1921 
1931  bool SetUserSetName(const int &id, const char *name);
1932 
1941  bool GetUserSetName(const int &id, char *name);
1942 
1948 };
1949 
1950 
1955 struct RVC_EXPORT X2 {
1966  transform_to_camera = CameraID_Left;
1967  projector_brightness = 240;
1968  calc_normal = false;
1969  calc_normal_radius = 5;
1970  use_auto_noise_removal = true;
1971  noise_removal_distance = 0;
1972  noise_removal_point_number = 40;
1973  light_contrast_threshold = 3;
1974  edge_noise_reduction_threshold = 2;
1975  exposure_time_2d = 11;
1976  exposure_time_3d = 11;
1977  gain_2d = 0.f;
1978  gain_3d = 0.f;
1979  hdr_exposure_times = 0;
1980  hdr_exposuretime_content[0] = 11;
1981  hdr_exposuretime_content[1] = 20;
1982  hdr_exposuretime_content[2] = 50;
1983  hdr_gain_3d[0] = 0;
1984  hdr_gain_3d[1] = 0;
1985  hdr_gain_3d[2] = 0;
1986 
1987  hdr_scan_times[0] = 1;
1988  hdr_scan_times[1] = 1;
1989  hdr_scan_times[2] = 1;
1990 
1991  hdr_projector_brightness[0] = 240;
1992  hdr_projector_brightness[1] = 240;
1993  hdr_projector_brightness[2] = 240;
1994  gamma_2d = 1.f;
1995  gamma_3d = 1.f;
1996  projector_color = ProjectorColor_Blue;
1997  use_projector_capturing_2d_image = true;
1998  smoothness = SmoothnessLevel_Off;
1999  downsample_distance = 0.0;
2000  capture_mode = CaptureMode_Normal;
2001  confidence_threshold = 0;
2002  scan_times = 1;
2003 
2004  bilateral_filter_kernal_size = 0;
2005  bilateral_filter_depth_sigma = 0;
2006  bilateral_filter_space_sigma = 0;
2007 
2008  line_scanner_scan_time_ms = 1000;
2009  line_scanner_exposure_time_us = 300;
2010  line_scanner_min_distance = 0;
2011  line_scanner_max_distance = 0;
2012 
2013  correspond2d = false;
2014  line_scanner_laser_position = 65536 / 2;
2015  use_auto_bilateral_filter = true;
2016  reflection_filter_threshold = 0;
2017  smooth_sigma = 1.75;
2018 
2019  roi = RVC::ROI();
2020  enable_2d_in_capture = true;
2021  pointcloud_completion = false;
2022  line_scanner_brightness_threshold = 5;
2023  trigger_mode = TriggerMode_SoftWare;
2024  encoder_trigger_interval = 8;
2025  truncate_z_min = -29999;
2026  truncate_z_max = 29999;
2027  line_scanner_confidence = 0.72;
2028  fixed_rate = 1;
2029  auto_set_fixed_rate = true;
2030  enable_transfer_control = false;
2031  }
2048 
2052  unsigned int calc_normal_radius;
2053 
2080  float gain_2d;
2085  float gain_3d;
2096  int hdr_exposuretime_content[3];
2101  float hdr_gain_3d[3];
2106  int hdr_projector_brightness[3];
2111  float gamma_2d;
2116  float gamma_3d;
2126 
2131  [[deprecated(
2132  "smoothness has been deprecated in CPU version,use smooth_sigma instead")]] SmoothnessLevel smoothness;
2155 
2161 
2167 
2182  int hdr_scan_times[3];
2183 
2189  [[deprecated("Use smooth_sigma instead")]] int bilateral_filter_kernal_size;
2190 
2196  [[deprecated("Use smooth_sigma instead")]] double bilateral_filter_depth_sigma;
2197 
2203  [[deprecated("Use smooth_sigma instead")]] double bilateral_filter_space_sigma;
2204 
2221 
2227 
2233 
2240  [[deprecated("Use smooth_sigma instead")]] bool use_auto_bilateral_filter;
2241 
2249 
2257 
2265 
2270 
2276 
2277  /*
2278  * @brief Only laser lines with brightness greater than the 'line_scanner_brightness_threshold' will be
2279  * extracted by the algorithm. A higher threshold results in fewer extracted points, while a lower threshold
2280  * yields more points but may introduce additional noise. When scanning black objects, a lower threshold can be
2281  * used.
2282  *
2283  * range: [0, 200]
2284  *
2285  * default: 5
2286  */
2287  int line_scanner_brightness_threshold;
2288 
2295 
2300 
2307 
2314 
2335 
2350  double fixed_rate;
2351 
2361 
2370  };
2383  CoordinateSelect_Disabled,
2384  CoordinateSelect_CameraLeft,
2385  CoordinateSelect_CameraRight,
2386  CoordinateSelect_CaliBoard,
2387  CoordinateSelect_CameraExtra,
2388  };
2389 
2391  : coordinate_select(CoordinateSelect_Disabled), transform{1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1} {}
2392 
2398 
2403  double transform[16];
2404  };
2405 
2410  Image image[2];
2411  };
2412 
2417  Image image[2];
2418  PointMap pointmap;
2419  DepthMap depthmap;
2420  ConfidenceMap confidencemap;
2421  };
2422 
2436 
2444 
2452  };
2453 
2457  typedef void (*CollectionCallBackPtr)(X2::CollectionCallBackInfo, X2::CaptureOptions, UserPtr);
2458  typedef void (*CalculationCallBackPtr)(X2::CalculationCallBackInfo, X2::CaptureOptions, UserPtr);
2459 
2460  typedef void (*FixedLineScanCallBackPtr)(X2::FixedLineScanCallBackInfo, UserPtr);
2461 
2468  static X2 Create(const Device &d);
2474  static void Destroy(X2 &x);
2475 
2482  bool IsValid();
2489  bool Open();
2493  void Close();
2500  bool IsOpen();
2507  bool IsPhysicallyConnected();
2514  bool OpenProtectiveCover();
2521  bool OpenProtectiveCoverAsync();
2528  bool CloseProtectiveCover();
2535  bool CloseProtectiveCoverAsync();
2542  bool ResetProtectiveCover();
2547  bool GetProtectiveCoverStatus(ProtectiveCoverStatus &status);
2558  bool SetCollectionCallBack(X2::CollectionCallBackPtr cb, UserPtr ctx);
2569  bool SetCalculationCallBack(X2::CalculationCallBackPtr cb, UserPtr ctx);
2570 
2578  bool Capture(const CaptureOptions &opts);
2585  bool Capture();
2586 
2594  bool StartFixedLineScan(const CaptureOptions &opts);
2595 
2603  bool StartFixedLineScan();
2604 
2610  [[deprecated("Use bool GetFixedLineScanPointMap(PointMap &point_map) instead")]] PointMap
2611  GetFixedLineScanPointMap();
2612 
2619  bool GetFixedLineScanPointMap(PointMap &point_map);
2620 
2627  bool StopFixedLineScan();
2628 
2638  bool Capture2D(const CameraID cid, const CaptureOptions &opts);
2647  bool Capture2D(const CameraID cid);
2655  bool SetBandwidth(float percent);
2656 
2664  bool GetBandwidth(float &percent);
2665 
2673  bool SetCustomTransformation(const CustomTransformOptions &opts);
2674 
2682  bool GetCustomTransformation(CustomTransformOptions &opts);
2683 
2689  PointMap GetPointMap();
2695  Image GetImage(const CameraID cid);
2696 
2702  DepthMap GetDepthMap();
2703 
2709  ConfidenceMap GetConfidenceMap();
2715  CorrespondMap GetCorrespondMap();
2716 
2731  bool GetExtrinsicMatrix(const CameraID cid, float *matrix);
2732 
2749  bool GetIntrinsicParameters(const CameraID cid, float *instrinsicMatrix, float *distortion);
2756  bool GetProjectorTemperature(float &temperature);
2765  [[deprecated]] bool GetCameraTemperature(const CameraID cid, CameraTempSelector seletor, float &temperature);
2776  bool AutoWhiteBalance(int wb_times = 10, const CaptureOptions &opts = CaptureOptions(),
2777  const RVC::ROI &roi = RVC::ROI());
2786  bool GetExposureTimeRange(int *min_value, int *max_value);
2795  bool GetGainRange(float *min_value, float *max_value);
2804  bool GetGammaRange(float *min_value, float *max_value);
2811  bool SaveEncodedImagesData(const char *addr);
2812 
2820  bool SaveCaptureOptionParameters(const X2::CaptureOptions &opts);
2821 
2829  bool LoadCaptureOptionParameters(X2::CaptureOptions &opts);
2830 
2838  bool GetAutoCaptureSetting(CaptureOptions &opts, const ROI &roi = ROI());
2839 
2849  bool GetAutoHdrCaptureSetting(CaptureOptions &opts, const ROI &roi);
2850 
2865  bool GetAutoNoiseRemovalSetting(CaptureOptions &opts);
2866 
2873  bool LoadSettingFromFile(const char *filename);
2874 
2881  bool SaveSettingToFile(const char *filename);
2882 
2889  bool CheckRoi(ROI roi);
2890 
2896  ROI AutoAdjustRoi(ROI roi = ROI());
2897 
2901  bool GetRoiRange(ROIRange &range);
2902 
2910  bool GetCameraResolution(Size &resolution);
2911 
2917  Mesh GetMesh();
2918 
2935  bool SetFixedLineScanCallback(const X2::FixedLineScanCallBackPtr cb, UserPtr ctx);
2936 
2943  bool GetTimestamp(uint64_t &timestamp);
2944 
2956  bool ResetTimestamp();
2957 
2965  bool GetAuto2DExposureTime(CaptureOptions &opts, const ROI &roi = ROI());
2966 
2975  bool SetCurrentUserSet(const int &id);
2976 
2984  bool GetCurrentUserSet(int &id);
2985 
2995  bool SetUserSetName(const int &id, const char *name);
2996 
3005  bool GetUserSetName(const int &id, char *name);
3006 
3007  Handle m_handle;
3008 };
3009 
3010 // You can use these to better get and set.
3011 namespace utils {
3012 struct Point3D {
3013  Point3D(double x = 0.0, double y = 0.0, double z = 0.0) : x(x), y(y), z(z) {}
3014  double x;
3015  double y;
3016  double z;
3017 };
3018 
3019 // Helper class upon RVC::PointMap to ease data-access
3020 struct PointMap {
3021  PointMap(RVC::PointMap pm) : pm(pm) {}
3022  Point3D At(int rows, int cols) {
3023  Point3D p;
3024  auto sz = pm.GetSize();
3025  if (!pm.IsValid()) {
3026  printf("RVC::Utils: Invalid");
3027  assert(false);
3028  } else if (rows >= sz.rows || cols >= sz.cols) {
3029  printf("RVC::Utils: Invalid rows and cols(%d, %d), size(%d, %d)", rows, cols, sz.rows, sz.cols);
3030  assert(false);
3031  } else {
3032  double *data = pm.GetPointDataPtr() + 3 * (rows * sz.cols + cols);
3033  p.x = *data++;
3034  p.y = *data++;
3035  p.z = *data++;
3036  }
3037  return p;
3038  }
3039  void Set(int rows, int cols, const Point3D p) {
3040  auto sz = pm.GetSize();
3041  if (!pm.IsValid()) {
3042  printf("RVC::Utils: Invalid");
3043  assert(false);
3044  } else if (rows >= sz.rows || cols >= sz.cols) {
3045  printf("RVC::Utils: Invalid rows and cols(%d, %d), size(%d, %d)", rows, cols, sz.rows, sz.cols);
3046  assert(false);
3047  } else {
3048  double *data = pm.GetPointDataPtr() + 3 * (rows * sz.cols + cols);
3049  *data++ = p.x;
3050  *data++ = p.y;
3051  *data++ = p.z;
3052  }
3053  }
3054 
3055  RVC::Size GetSize() { return pm.GetSize(); }
3056 
3057  RVC::PointMap pm;
3058 };
3059 
3060 template <typename T, typename H>
3061 T _At(H handle, int rows, int cols) {
3062  T v = 0;
3063  RVC::Size sz = handle.GetSize();
3064  if (!handle.IsValid()) {
3065  printf("RVC::Utils: Invalid");
3066  assert(false);
3067  return v;
3068  } else if (rows >= sz.rows || cols >= sz.cols) {
3069  printf("RVC::Utils: Invalid rows and cols(%d, %d), size(%d, %d)", rows, cols, sz.rows, sz.cols);
3070  assert(false);
3071  return v;
3072  } else {
3073  return *(handle.GetDataConstPtr() + rows * sz.cols + cols);
3074  }
3075 }
3076 
3077 template <typename T, typename H>
3078 void _Set(H handle, int rows, int cols, const T v) {
3079  RVC::Size sz = handle.GetSize();
3080  if (!handle.IsValid()) {
3081  printf("RVC::Utils: Invalid");
3082  assert(false);
3083  } else if (rows >= sz.rows || cols >= sz.cols) {
3084  printf("RVC::Utils: Invalid rows and cols(%d, %d), size(%d, %d)", rows, cols, sz.rows, sz.cols);
3085  assert(false);
3086  } else {
3087  *(handle.GetDataPtr() + rows * sz.cols + cols) = v;
3088  }
3089 }
3090 
3091 // Helper class upon RVC::Image to ease data-access
3092 struct Image {
3093  Image(RVC::Image img) : img(img) {}
3094  unsigned char At(int rows, int cols) { return _At<unsigned char>(img, rows, cols); }
3095  void Set(int rows, int cols, const unsigned char v) { _Set(img, rows, cols, v); }
3096  RVC::Size GetSize() { return img.GetSize(); }
3097 
3098  RVC::Image img;
3099 };
3100 
3101 // Helper class upon RVC::ConfidenceMap to ease data-access
3103  ConfidenceMap(RVC::ConfidenceMap cm) : cm(cm) {}
3104  double At(int rows, int cols) { return _At<double>(cm, rows, cols); }
3105  void Set(int rows, int cols, const double v) { _Set(cm, rows, cols, v); }
3106  RVC::Size GetSize() { return cm.GetSize(); }
3107 
3108  RVC::ConfidenceMap cm;
3109 };
3110 
3111 // Helper class upon RVC::DepthMap to ease data-access
3112 struct DepthMap {
3113  DepthMap(RVC::DepthMap dm) : dm(dm) {}
3114  double At(int rows, int cols) { return _At<double>(dm, rows, cols); }
3115  void Set(int rows, int cols, const double v) { _Set(dm, rows, cols, v); }
3116  RVC::Size GetSize() { return dm.GetSize(); }
3117 
3118  RVC::DepthMap dm;
3119 };
3120 } // namespace utils
3121 } // namespace RVC
X1 struct.
Definition: RVC.h:1103
int reflection_filter_threshold
Used to remove large-area erroneous point clouds caused by reflections. The higher this value is set...
Definition: RVC.h:1372
BalanceSelector
White balance ratio selector, suport BalanceSelector_Red, BalanceSelector_Green and BalanceSelector_B...
Definition: RVC.h:785
ProtectiveCoverStatus
Protective Cover Status.
Definition: RVC.h:773
CaptureMode capture_mode
control capture mode
Definition: RVC.h:2166
double confidence_threshold
confidence threshold, the point with confindence low then this value will be removed range: [0...
Definition: RVC.h:1308
bool calc_normal
flag Whether calculate 3D points normal vector
Definition: RVC.h:1166
int filter_range
Set the noise filter value. The larger the value, the greater the filtering degree. The default value has been changed to 0 from 1 after v1.6.1.
Definition: RVC.h:1178
RVC_EXPORT void SystemSetLoggerName(const char *loggerName)
Set the name of logger.
int y
start y of Image roi (row index of roi up left corner)
Definition: RVC.h:188
Handle m_handle
RVC Handle.
Definition: RVC.h:370
Options when setting custom transformation.
Definition: RVC.h:2375
int exposure_time_2d
Set the exposure_time 2D value in milliseconds.
Definition: RVC.h:2070
RVC_EXPORT int GetLastError()
Get last error of RVC SDK.
int projector_brightness
Set the projector brightness value.
Definition: RVC.h:1226
double truncate_z_min
truncate point map and depth map by z direction minimum value (units: mm) and truncate_z_min should l...
Definition: RVC.h:2306
double truncate_z_max
truncate point map and depth map by z direction maximum value (units: mm) and truncate_z_max should m...
Definition: RVC.h:2313
CoordinateSelect
base coordinate of custom transformation,default is CoordinateSelect_Disabled
Definition: RVC.h:2382
Software trigger mode.
Definition: RVC.h:854
SmoothnessLevel smoothness
control point map smoothness
Definition: RVC.h:2132
int exposure_time_3d
Set the exposure_time 3D value in milliseconds.
Definition: RVC.h:2075
Capture options.
Definition: RVC.h:1960
Handle m_handle
RVC Handle.
Definition: RVC.h:1005
RVC X Device info.
Definition: RVC.h:902
double fixed_rate
Fixed-rate trigger frequency in Hz.
Definition: RVC.h:2350
RVC_EXPORT const char * GetVersion()
Get the Version of RVC SDK.
double smooth_sigma
The Gaussian filters are used to smooth points. The larger the smooth_sigma, the smoother the point c...
Definition: RVC.h:2256
NetworkDevice
NetworkDevie, support NetworkDevice_LightMachine, NetworkDevice_LeftCamera and NetworkDevice_RightCam...
Definition: RVC.h:796
int light_contrast_threshold
Light contrast trheshold, range in [0, 10]. The contrast of point less than this value will be treat ...
Definition: RVC.h:1206
double truncate_z_max
truncate point map and depth map by z direction maximum value (units: mm) and truncate_z_max should m...
Definition: RVC.h:1330
Options when setting custom transformation.
Definition: RVC.h:1391
bool use_auto_bilateral_filter
flag Whether to use auto bilateral filter. If true, the bilateral_filter_kernal_size and bilateral_fi...
Definition: RVC.h:2240
X1 CollectionCallBackInfo.
Definition: RVC.h:1424
Size GetSize() const
Get the PointMap Size object.
float gamma_2d
Set the 2D gamma value in milliseconds.
Definition: RVC.h:2111
double line_scanner_confidence
Line scanner confidence threshold for point cloud filtering.
Definition: RVC.h:2334
int phase_filter_range
Set the phase filter value. The larger the value, the greater the filtering degree 0~40...
Definition: RVC.h:1211
void(* CollectionCallBackPtr)(X2::CollectionCallBackInfo, X2::CaptureOptions, UserPtr)
X2 CallBackPtr.
Definition: RVC.h:2457
X2 CollectionCallBackInfo.
Definition: RVC.h:2409
Handle(HandleID sid_, HandleID gid_)
Construct a new Handle object with sid and gid.
Definition: RVC.h:64
Definition: RVC.h:681
double downsample_distance
uniform downsample distance. if <= 0, do nothing.
Definition: RVC.h:2160
int width_max
Maximum value of width of Image roi.
Definition: RVC.h:240
ProjectorColor projector_color
projector color
Definition: RVC.h:2120
double noise_removal_distance
The smaller the value, the greater the filtering degree. range: 0 ~ 20 (units: mm) ...
Definition: RVC.h:1196
bool use_auto_bilateral_filter
flag Whether to use auto bilateral filter. If true, the bilateral_filter_kernal_size and bilateral_fi...
Definition: RVC.h:1364
double bilateral_filter_space_sigma
the guassian sigma in space of bilateral filter of depth map range: [0, 100]
Definition: RVC.h:2203
RVC X PointMap Type.
Definition: RVC.h:498
int light_contrast_threshold
Light contrast trheshold, range in [0, 10]. The contrast of point less than this value will be treat ...
Definition: RVC.h:2059
Handle m_handle
RVC Handle.
Definition: RVC.h:660
CameraID
CameraID, support CameraID_Left and CameraID_Right
Definition: RVC.h:720
int width_step
step of width of Image roi
Definition: RVC.h:220
Enum
RVC camera type, support USB, GigE and All
Definition: RVC.h:1018
CaptureOptions()
Construct a new Capture Options object.
Definition: RVC.h:1965
double truncate_z_min
truncate point map and depth map by z direction minimum value (units: mm) and truncate_z_min should l...
Definition: RVC.h:1323
int scan_times
scan times, only use in robust mode. range: [1, 8]
Definition: RVC.h:2177
uint32_t HandleID
Handle id 4 bytes long.
Definition: RVC.h:47
Fixed-rate automatic trigger mode.
Definition: RVC.h:884
TriggerMode
Defines the trigger source for point cloud acquisition.
Definition: RVC.h:842
RVC::ROI roi
set ROI function, only 3d points in the roi will be generated. This function can improve 3d capturesp...
Definition: RVC.h:1316
int encoder_index
Encoder/trigger event index (0, 1, 2, ...)
Definition: RVC.h:2451
double bilateral_filter_depth_sigma
the guassian sigma in depth of bilateral filter of depth map range: [0, 100]
Definition: RVC.h:1344
float gamma_3d
Set the 3D gamma value.
Definition: RVC.h:1278
int width_min
Minimum value of width of Image roi.
Definition: RVC.h:230
bool pointcloud_completion
In &#39;CaptureMode_SwingLineScan&#39; mode with &#39;correspond2d&#39; enabled,turning on &#39;pointcloud_completion&#39; wi...
Definition: RVC.h:2275
Definition: RVC.h:3012
ROI()
Construct a new Image ROI object.
Definition: RVC.h:169
bool operator!=(const Size &lhs, const Size &rhs)
Compare two Image size.
Definition: RVC.h:156
CaptureMode capture_mode
control capture mode
Definition: RVC.h:1301
RVC Handle.
Definition: RVC.h:52
RVC_EXPORT const char * GetLastErrorMessage()
Get the lastest error message. The pointer to string is temporary, you need to copy data from its buf...
int edge_noise_reduction_threshold
edge control after point matching, range in [0, 10], default = 2. The big the value, the more edge noise to be removed.
Definition: RVC.h:2065
Definition: RVC.h:663
unsigned int calc_normal_radius
Neighborhood radius in pixel of calculating normal, > 0.
Definition: RVC.h:2052
double * GetPointDataPtr()
Get the Point Data Ptr of PointMap object.
RVC::PointMap pointmap
Point cloud data for the current trigger event.
Definition: RVC.h:2435
Capture options.
Definition: RVC.h:1109
Enum
Unit support Meter and Millimeter
Definition: RVC.h:522
CoordinateSelect coordinate_select
base coordinate setting of custom transformation
Definition: RVC.h:1412
bool calc_normal
flag Whether calculate 3D points normal vector
Definition: RVC.h:2047
X1 CalculationCallBackInfo.
Definition: RVC.h:1431
Handle & operator=(const Handle &rhs)
Assigns new Object to the Handle object, replace its current parameters.
Definition: RVC.h:78
int height_step
step of height of Image roi
Definition: RVC.h:225
int reflection_filter_threshold
Used to remove large-area erroneous point clouds caused by reflections. The higher this value is set...
Definition: RVC.h:2248
X2 CalculationCallBackInfo.
Definition: RVC.h:2416
ROI(int x, int y, int w, int h)
Construct a new Image ROI object with x,y,w,h.
Definition: RVC.h:178
Image ROI.
Definition: RVC.h:164
int exposure_time_3d
Set the exposure_time 3D value in milliseconds.
Definition: RVC.h:1221
Definition: RVC.h:440
double smooth_sigma
The Gaussian filters are used to smooth points. The larger the smooth_sigma, the smoother the point c...
Definition: RVC.h:1380
int bilateral_filter_kernal_size
the kernal size of bilateral filter of depth map range: [3, 31], 0 for not use bilateral filter ...
Definition: RVC.h:1337
Device ROIRange.
Definition: RVC.h:205
float gamma_2d
Set the 2D gamma value.
Definition: RVC.h:1273
int x_step
step of x of Image roi (col index of roi up left corner)
Definition: RVC.h:210
Hardware trigger mode.
Definition: RVC.h:869
int hdr_exposure_times
Set the hdr exposure times value. 0,2,3.
Definition: RVC.h:1241
bool correspond2d
whether to generate point clouds corresponding to 2D images
Definition: RVC.h:2226
NetworkType
RVC supported Camera Network type.
Definition: RVC.h:750
int exposure_time_2d
Set the exposure_time 2D value in milliseconds.
Definition: RVC.h:1216
Size GetSize()
Get the DepthMap Size object.
Definition: RVC.h:3020
Definition: RVC.h:3112
RVC_EXPORT bool SystemInit()
SystemInit.
Definition: PythonAPI.py:353
bool operator==(const Size &lhs, const Size &rhs)
Compare two Image size.
Definition: RVC.h:145
Size(int w, int h)
Construct a new Image/PointMap Size object with width/cols and height/rows.
Definition: RVC.h:120
PortType
RVC supported Camera Port type.
Definition: RVC.h:737
Image Type.
Definition: RVC.h:276
Device struct.
Definition: RVC.h:926
ProjectorColor
Projector color, support ProjectorColor_Red, ProjectorColor_Green, ProjectorColor_Blue, ProjectorColor_White and ProjectorColor_ALL
Definition: RVC.h:760
Definition: RVC.h:518
SmoothnessLevel smoothness
control point map smoothness
Definition: RVC.h:1289
CaptureOptions()
Construct a new Capture Options object.
Definition: RVC.h:1114
bool transform_to_camera
flag Whether transfrom 3D points from calibration board system to camera coordinate system ...
Definition: RVC.h:1171
CoordinateSelect coordinate_select
base coordinate setting of custom transformation
Definition: RVC.h:2397
unsigned int calc_normal_radius
Neighborhood radius in pixel of calculating normal, > 0.
Definition: RVC.h:1268
float gamma_3d
Set the 3D gamma value in milliseconds.
Definition: RVC.h:2116
bool operator==(const Handle &rhs)
Compare with another Handle object.
Definition: RVC.h:90
Definition: RVC.h:3102
double downsample_distance
uniform downsample distance. if <= 0, do nothing.
Definition: RVC.h:1295
RVC_EXPORT void SystemShutdown()
SystemShutdown.
Definition: PythonAPI.py:365
RVC_EXPORT int SystemListDevices(Device *pdevices, size_t size, size_t *actual_size, SystemListDeviceType::Enum opt=SystemListDeviceType::All)
List the fix number devices.
Size GetSize()
Get the Size object.
int noise_removal_point_number
Set the noise filter parameter 2. The larger the value, the greater the filtering degree...
Definition: RVC.h:2154
Handle m_handle
DepthMap Handle.
Definition: RVC.h:437
float gain_3d
Set the 3D gain value in milliseconds.
Definition: RVC.h:2085
int bilateral_filter_kernal_size
the kernal size of bilateral filter of depth map range: [3, 31], 0 for not use bilateral filter ...
Definition: RVC.h:2189
Handle(const Handle &rhs)
Construct a new Handle object with another Handle.
Definition: RVC.h:70
RVC X DepthMap.
Definition: RVC.h:377
int line_scanner_max_distance
Set line scanner mode&#39;s maximum working distance.
Definition: RVC.h:2220
Handle m_handle
RVC Handle.
Definition: RVC.h:1947
Size()
Construct a new Image/PointMap Size object.
Definition: RVC.h:113
bool use_auto_noise_removal
flag Whether to use auto noise removal. If true, the noise_removal_distance and noise_removal_point_n...
Definition: RVC.h:1191
RVC_EXPORT bool SystemIsInited()
Check system is inited or not.
Definition: PythonAPI.py:359
RVC_EXPORT Device SystemFindDevice(const char *serialNumber)
Return the device according to the serialNumber, if the device is valid.
RVC X PointMap.
Definition: RVC.h:538
TriggerMode trigger_mode
Trigger mode. Currently, only the &#39;FixedLineScan&#39; mode supports hardware triggering (TriggerMode_Hard...
Definition: RVC.h:2294
int line_scanner_scan_time_ms
Set line scanner mode&#39;s total scan time.
Definition: RVC.h:2208
bool enable_2d_in_capture
Acquire 2D images during capture.
Definition: RVC.h:1385
void(* CollectionCallBackPtr)(X1::CollectionCallBackInfo, X1::CaptureOptions, UserPtr)
X1 CallBackPtr.
Definition: RVC.h:1441
float gain_2d
Set the 2D gain value in milliseconds.
Definition: RVC.h:2080
X2 struct.
Definition: RVC.h:1955
Callback information structure for fixed-line scan mode.
Definition: RVC.h:2431
int hdr_exposure_times
Set the hdr exposure times value. 0,2,3.
Definition: RVC.h:2090
int x
start x of Image roi (col index of roi up left corner)
Definition: RVC.h:183
int encoder_trigger_interval
Number of encoder pulses required to trigger one profile acquisition.
Definition: RVC.h:2299
bool use_projector_capturing_2d_image
Set 2D image whether use projector.
Definition: RVC.h:2125
int line_scanner_min_distance
Set line scanner mode&#39;s minimum working distance.
Definition: RVC.h:2216
bool operator!=(const Handle &rhs)
Compare with another Handle object.
Definition: RVC.h:98
RVC::ROI roi
set ROI function, only 3d points in the roi will be generated. This function can improve 3d capture s...
Definition: RVC.h:2264
Handle()
Construct a new Handle object.
Definition: RVC.h:57
bool auto_set_fixed_rate
Enable automatic fixed rate estimation.
Definition: RVC.h:2360
int height_max
Maximum value of height of Image roi.
Definition: RVC.h:245
int width
Image roi width.
Definition: RVC.h:193
double confidence_threshold
confidence threshold, the point with confindence low then this value will be removed range: [0...
Definition: RVC.h:2173
Definition: RVC.h:3092
bool enable_2d_in_capture
Acquire 2D images during capture.
Definition: RVC.h:2269
float gain_2d
Set the 2D gain value.
Definition: RVC.h:1231
int scan_times
scan times, only use in robust mode. range: [1, 8]
Definition: RVC.h:1356
Handle m_handle
confidence map handle
Definition: RVC.h:491
double bilateral_filter_depth_sigma
the guassian sigma in depth of bilateral filter of depth map range: [0, 100]
Definition: RVC.h:2196
int projector_brightness
Set the projector brightness value.
Definition: RVC.h:2042
Enum
PointMap Type Support type PointsOnly and PointsNormals
Definition: RVC.h:504
System list Device type.
Definition: RVC.h:1013
Image/PointMap Size.
Definition: RVC.h:108
double noise_removal_distance
The smaller the value, the greater the filtering degree. range: 0 ~ 20 (units: mm) ...
Definition: RVC.h:2150
NetworkDeviceStatus_
NetworkDevieStatus, support NetworkDeviceStatus_OK, NetworkDeviceStatus_Not_Reachable, NetworkDeviceStatus_In_Use and NetworkDeviceStatus_Conflict
Definition: RVC.h:808
int pointmap_index
Sequential frame index (0, 1, 2, ...)
Definition: RVC.h:2443
bool enable_transfer_control
Enable transfer control.
Definition: RVC.h:2369
uint16_t line_scanner_laser_position
select laser position in fixed line scan mode
Definition: RVC.h:2232
bool use_projector_capturing_2d_image
Set 2D image whether use projector.
Definition: RVC.h:1283
double bilateral_filter_space_sigma
the guassian sigma in space of bilateral filter of depth map range: [0, 100]
Definition: RVC.h:1351
int y_step
step of y of Image roi (row index of roi up left corner)
Definition: RVC.h:215
int noise_removal_point_number
Set the noise filter parameter 2. The larger the value, the greater the filtering degree...
Definition: RVC.h:1200
Size GetSize() const
Get the Image Size object.
int height_min
Minimum value of height of Image roi.
Definition: RVC.h:235
CoordinateSelect
base coordinate of custom transformation,default is CoordinateSelect_Disabled
Definition: RVC.h:1398
RVC X Image object.
Definition: RVC.h:303
CaptureMode
CaptureMode, support CaptureMode_Fast, CaptureMode_Normal, CaptureMode_Ultra, CaptureMode_Robust, CaptureMode_AntiInterReflection and CaptureMode_SwingLineScan
Definition: RVC.h:820
CameraID transform_to_camera
CameraID_Left transfrom 3D points from calibration board system to left camera coordinate system Came...
Definition: RVC.h:2037
int line_scanner_exposure_time_us
Set line scanner mode&#39;s single line exposure time.
Definition: RVC.h:2212
bool IsValid() const
Check PointMap is Valid or not.
int height
Image roi height.
Definition: RVC.h:198
bool use_auto_noise_removal
flag Whether to use auto noise removal. If true, the noise_removal_distance and noise_removal_point_n...
Definition: RVC.h:2145
RVC namespace.
Definition: QuickStart.dox:1
float gain_3d
Set the 3D gain value.
Definition: RVC.h:1236