Functions for PointCloud / range map conversion and operations on range maps. More...
Data Structures | |
struct | CVC3DGapFilling |
Options for gap filling with function CVC3DRangeMapFillGaps. More... | |
Enumerations | |
enum | CVC3DGapFillingMethod { CVC3DGFM_LinearInterpolation = 0 } |
Supported methods for gap filling. More... | |
enum | CVC3DPfncFormat { CVC3D_Coord3D_C64f = 0x814000BF } |
CVB custom PFNC constants. More... | |
Functions | |
cvbres_t | CVC3DCreateDensePointCloudFromRangeMap (OBJ RangeMapImage, CVC3DFactors Factors, cvbval_t Flags, CVCOMPOSITE &PointCloud) |
Creates a new Cartesian 3D PointCloud from the given 2½D RangeMapImage. More... | |
cvbres_t | CVC3DCreateDifferenceMap (IMG RangeMap1, IMG RangeMap2, IMG &DifferenceMap) |
Subtracts the given RangeMap2 from RangeMap1. More... | |
cvbres_t | CVC3DCreateRangeMapFromPointCloud (CVCOMPOSITE PointCloud, CVC3DRange XRange, CVC3DRange YRange, cvbdim_t TargetWidth, cvbdim_t TargetHeight, double BackgroundValue, IMG &RangeMap) |
Creates a new range map image via linear projection in negative z direction. More... | |
cvbres_t | CVC3DRangeMapFillGaps (const CVC3DGapFilling &Options, IMG RangeMap) |
This function fills gaps of given range map RangeMap. More... | |
Functions for PointCloud / range map conversion and operations on range maps.
enum CVC3DPfncFormat |
cvbres_t CVC3DCreateDensePointCloudFromRangeMap | ( | OBJ | RangeMapImage, |
CVC3DFactors | Factors, | ||
cvbval_t | Flags, | ||
CVCOMPOSITE & | PointCloud | ||
) |
Creates a new Cartesian 3D PointCloud from the given 2½D RangeMapImage.
This function simply accesses the first plane of the given RangeMapImage and interprets the pixel data as depth information (z). The resulting point cloud will have ImageWidth(RangeMapImage) * ImageHeight(RangeMapImage) points.
The following BytesPerPixel as input for unsigned integer cvbdatatype_t values are supported: 1, 2 and 4. For floating point cvbdatatype_t values only 4 and 8 BytesPerPixel are supported. Note, that only linear access is supported (check with GetLinearAccess function from the CVCUtilities.dll).
The resulting point cloud is created via CVC3DCreateDensePointCloud.
[in] | RangeMapImage | Handle of 2½D image. |
[in] | Factors | Transformation factor to apply to each coordinate. |
[in] | Flags | CVC3DPointCloudFlags specifying the kind of point cloud to be created. |
[out] | PointCloud | Variable to receive the handle of the point cloud object as a CVCOMPOSITE. |
NaN
or Flags have an unsupported combination.Subtracts the given RangeMap2 from RangeMap1.
The following BytesPerPixel as input for unsigned integer cvbdatatype_t values are supported: 1, 2 and 4. For floating point cvbdatatype_t values only 4 and 8 BytesPerPixel are supported. Note, that only linear access is supported (check with GetLinearAccess function from the CVCUtilities.dll).
The output difference map will be double for double input images (cvbdatatype_t: DT_Float | DT_Signed | 64 ), for all other images it will be float (cvbdatatype_t: DT_Float | DT_Signed | 32).
[in] | RangeMap1 | Range map IImageVPA object to subtract from. |
[in] | RangeMap2 | Range map IImageVPA object to subtract from RangeMap1. |
[out] | DifferenceMap | Variable to receive the resulting difference map. |
cvbres_t CVC3DCreateRangeMapFromPointCloud | ( | CVCOMPOSITE | PointCloud, |
CVC3DRange | XRange, | ||
CVC3DRange | YRange, | ||
cvbdim_t | TargetWidth, | ||
cvbdim_t | TargetHeight, | ||
double | BackgroundValue, | ||
IMG & | RangeMap | ||
) |
Creates a new range map image via linear projection in negative z direction.
Projects a cuboid from the given PointCloud into a 2½D Image. The cuboid is defined via the given XRange and YRange. In z-range the cuboid is limited to the BackgroundValue as minimum.
The projection done is linear (no perspective projection) and no interpolation is done. If multiple points from PointCloud fall into the same target Image pixel, the point with the largest z component is set. If no point falls into certain RangeMap pixel locations, the BackgroundValue is set.
The given PointCloud must have a valid CVC3DPointCloudLayout.
Coord3D_C32f
).The RangeMap coordinate system is the default coordinate system.
[in] | PointCloud | Handle to point cloud object to project. |
[in] | XRange | Input window along the x axis (inclusive). |
[in] | YRange | Input window along the y axis (inclusive). |
[in] | TargetWidth | Target width of RangeMap in pixels (greater or equal to 2). |
[in] | TargetHeight | Target height of RangeMap in pixels (greater or equal to 2). |
[in] | BackgroundValue | Background value (initialization value for RangeMap). |
[out] | RangeMap | Variable to receive the resulting range map image. |
cvbres_t CVC3DRangeMapFillGaps | ( | const CVC3DGapFilling & | Options, |
IMG | RangeMap | ||
) |
This function fills gaps of given range map RangeMap.
Gaps will be filled by interpolating values of pixels surrounding the gap. If larger gaps should be ignored, the maximum size of gaps to be filled has to be set with Options.
The following BytesPerPixel as input for unsigned integer cvbdatatype_t values are supported: 1, 2 and 4. For floating point cvbdatatype_t values only 4 and 8 BytesPerPixel are supported. Note, that only linear access is supported (check with GetLinearAccess function from the CVCUtilities.dll).
[in] | Options | Options for gap filling. |
[in,out] | RangeMap | Range map where gaps should be filled. |