Functions for PointCloud / range map conversion and operations on range maps. More...
Enumerations | |
enum | CVC3DPfncFormat { CVC3D_Coord3D_C64f = 0x814000BF } |
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... | |
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 signed and unsigned integer cvbdatatype_t values are supported: 1, 2, 4, and 8. For floating point cvbdatatype_t values only 4 and 8 BytesPerPixel are supported.
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.
Coord3D_C32f
).[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. |