3#include "../namespace.hpp"
17typedef double CVC3DVector[3];
18typedef double CVC3DMatrix[3][3];
19typedef double CVC3DMatrixH[4][4];
21typedef void* CVC3DCALIBRATOR;
23typedef cvbuint32_t* CVC3DPolygonIndexTable;
25enum CVC3DPointCloudLayout
29 CVC3DPCL_SeparatePlanar,
34enum CVC3DPointCloudFlags
36 CVC3DPCF_DTFloat = 0 << 0,
37 CVC3DPCF_DTDouble = 1 << 0,
39 CVC3DPCF_XYZ = 0 << 0,
40 CVC3DPCF_XYZW = 1 << 5,
41 CVC3DPCF_XYZConfidence = 1 << 6,
42 CVC3DPCF_WithConfidence = 1 << 12,
43 CVC3DPCF_NoExtrinsic = 1 << 24,
44 CVC3DPCF_NoMeshIndices = 1 << 25
47enum CVC3DPointCloudFileFormat
52 CVC3DPCFF_WavefrontObj,
58 CVC3D_Coord3D_C64f = 0x814000BF
61#pragma pack ( push, 4 )
70#pragma pack ( push, 4 )
118 double DistanceToOrigin;
121struct CVC3DTransformation
123 CVC3DVector Translation;
127enum CVC3DDownsampleMode
129 CVC3DDownsampleByFactor,
133enum CVC3DCalibratorType
137 CVC3DC_LaserPlaneMatrixH,
139 CVC3DC_LaserPlanePolynom,
141 CVC3DC_LaserPlaneZigZag,
152enum CVC3DSensorPixelPosition
154 CVC3DSPP_Absolute = 0,
158enum CVC3DSensorPixelsMirrored
160 CVC3DSPM_None = 0U << 0,
161 CVC3DSPM_X = 1U << 0,
162 CVC3DSPM_Y = 1U << 1,
167struct CVC3DSensorSettings
172 CVC3DSensorPixelPosition PixelPosition;
173 CVC3DSensorPixelsMirrored PixelsMirrored;
180 double ResolutionReductionHorizontal;
181 double ResolutionReductionVertical;
187 CVC3DC_CropWithinRange = 0,
188 CVC3DC_CropOutsideRange = 1
191enum CVC3DGapFillingMethod
193 CVC3DGFM_LinearInterpolation = 0
197struct CVC3DGapFilling
199 double BackgroundValue;
203 CVC3DGapFillingMethod Method;
208struct CVC3DAffineTransformationParameters
210 CVC3DVector RotationAngles;
220CVB_DEF_CAPI(cvbres_t, CVC3DCreateDensePointCloud, (cvbdim_t Width, cvbdim_t Height, cvbval_t Flags, CVCOMPOSITE& PointCloud))
221CVB_DEF_CAPI(cvbres_t, CVC3DCreateSparsePointCloud, (cvbint64_t NumPoints, cvbval_t Flags, CVCOMPOSITE& PointCloud))
222CVB_DEF_CAPI(cvbres_t, CVC3DCreateDensePointCloudFromRangeMap, (OBJ RangeMapImage, CVC3DFactors Factors, cvbval_t Flags, CVCOMPOSITE& PointCloud))
223CVB_DEF_CAPI(cvbres_t, CVC3DCreateCalibratedPointCloudFromRangeMap, (OBJ RangeMapImage, CVC3DCALIBRATOR Calibrator3D, cvbval_t Flags, CVCOMPOSITE& PointCloud))
224CVB_DEF_CAPI(cvbres_t, CVC3DCreateCalibratedPointCloudFromRangeMapWithSettings, (OBJ RangeMapImage, CVC3DCALIBRATOR Calibrator,
const CVC3DSensorSettings& sensorSettings,
double encoderStep,
225 cvbval_t Flags, CVCOMPOSITE& PointCloud))
227CVB_DEF_CAPI_X(cvbres_t, CVC3DLoadFile, (
const char* FileName, cvbval_t Flags, CVCOMPOSITE& PointCloud))
228CVB_DEF_CAPI_X(cvbres_t, CVC3DLoadFileW, (
const wchar_t* FileName, cvbval_t Flags, CVCOMPOSITE& PointCloud))
229inline cvbres_t _ppCVC3DLoadFileTyped(
const char* FileName, cvbval_t Flags, CVCOMPOSITE& PointCloud)
231 return CVC3DLoadFile(FileName, Flags, PointCloud);
234inline cvbres_t _ppCVC3DLoadFileTyped(
const wchar_t* FileName, cvbval_t Flags, CVCOMPOSITE& PointCloud)
236 return CVC3DLoadFileW(FileName, Flags, PointCloud);
239CVB_DEF_CAPI_X(cvbres_t, CVC3DWriteFile, (CVCOMPOSITE PointCloud, cvbval_t Flags,
const char* FileName))
240CVB_DEF_CAPI_X(cvbres_t, CVC3DWriteFileW, (CVCOMPOSITE PointCloud, cvbval_t Flags,
const wchar_t* FileName))
241inline cvbres_t _ppCVC3DWriteFileTyped(CVCOMPOSITE PointCloud, cvbval_t Flags,
const char* FileName)
243 return CVC3DWriteFile(PointCloud, Flags, FileName);
246inline cvbres_t _ppCVC3DWriteFileTyped(CVCOMPOSITE PointCloud, cvbval_t Flags,
const wchar_t* FileName)
248 return CVC3DWriteFileW(PointCloud, Flags, FileName);
251CVB_DEF_CAPI_X(cvbres_t, CVC3DLoadCalibrator, (
const char* FileName, CVC3DCALIBRATOR& Calibrator3D))
252CVB_DEF_CAPI_X(cvbres_t, CVC3DLoadCalibratorW, (
const wchar_t* FileName, CVC3DCALIBRATOR& Calibrator3D))
253inline cvbres_t _ppCVC3DLoadCalibratorTyped(
const char* FileName, CVC3DCALIBRATOR& Calibrator)
255 return CVC3DLoadCalibrator(FileName, Calibrator);
258inline cvbres_t _ppCVC3DLoadCalibratorTyped(
const wchar_t* FileName, CVC3DCALIBRATOR& Calibrator)
260 return CVC3DLoadCalibratorW(FileName, Calibrator);
263CVB_DEF_CAPI(cvbres_t, CVC3DPointCloudToMemory, (CVCOMPOSITE PointCloud, cvbval_t Flags, CVC3DPointCloudFileFormat FileFormat,
void* Memory,
size_t Size))
264CVB_DEF_CAPI(cvbres_t, CVC3DPointCloudToMemorySize, (CVCOMPOSITE PointCloud, cvbval_t Flags, CVC3DPointCloudFileFormat FileFormat,
size_t& Size))
265CVB_DEF_CAPI(cvbres_t, CVC3DMemoryToPointCloud, (
void* Memory,
size_t Size, cvbval_t Flags, CVC3DPointCloudFileFormat FileFormat, CVCOMPOSITE& PointCloud))
267CVB_DEF_CAPI(cvbres_t, CVC3DPointCloudAnalyzeLayout, (CVCOMPOSITE PointCloud, CVC3DPointCloudLayout& Layout))
268CVB_DEF_CAPI(cvbres_t, CVC3DPointCloudGetDatatype, (CVCOMPOSITE PointCloud, cvbdatatype_t& DT))
269CVB_DEF_CAPI(cvbres_t, CVC3DPointCloudGetNumPoints, (CVCOMPOSITE PointCloud, cvbint64_t& NumPoints))
270CVB_DEF_CAPI(cvbres_t, CVC3DPointCloudGetLatticeSize, (CVCOMPOSITE PointCloud, cvbdim_t& Width, cvbdim_t& Height))
271CVB_DEF_CAPI(cvbres_t, CVC3DPointCloudGetPointComponentsPointers, (CVCOMPOSITE PointCloud,
void*& pXs, intptr_t& XsInc,
void*& pYs, intptr_t& YsInc,
void*& pZs, intptr_t& ZsInc,
void*& pWs, intptr_t& WsInc,
size_t& NumPoints))
272CVB_DEF_CAPI(cvbres_t, CVC3DPointCloudGetPointsConfidencePointer, (CVCOMPOSITE PointCloud,
void*& pConfidences, intptr_t& Increment, cvbdatatype_t& DataType))
273CVB_DEF_CAPI(cvbres_t, CVC3DPointCloudGetPointDsPointer, (CVCOMPOSITE PointCloud, CVC3DPointD*& pPoints,
size_t& NumPoints))
274CVB_DEF_CAPI(cvbres_t, CVC3DPointCloudGetPointFsPointer, (CVCOMPOSITE PointCloud, CVC3DPointF*& pPoints,
size_t& NumPoints))
275CVB_DEF_CAPI(cvbres_t, CVC3DPointCloudGetPointHFsPointer, (CVCOMPOSITE PointCloud, CVC3DPointHF*& pPoints,
size_t& NumPoints))
276CVB_DEF_CAPI(cvbres_t, CVC3DPointCloudGetPointHDsPointer, (CVCOMPOSITE PointCloud, CVC3DPointHD*& pPoints,
size_t& NumPoints))
278CVB_DEF_CAPI(cvbres_t, CVC3DGetCalibratorType, (CVC3DCALIBRATOR Calibrator, CVC3DCalibratorType& Type))
279CVB_DEF_CAPI(cvbres_t, CVC3DCreateFactorsCalibrator, (CVC3DFactors Factors, CVC3DCALIBRATOR& Calibrator3D))
280CVB_DEF_CAPI(cvbres_t, CVC3DCreatePinholeCameraCalibrator, (
double Fx,
double Fy,
double Sz,
double CPx,
double CPy, CVC3DCALIBRATOR& Calibrator3D))
281CVB_DEF_CAPI(cvbres_t, CVC3DCreateMatrixHCalibrator, (
const CVC3DMatrixH &M, CVC3DCALIBRATOR& Calibrator3D))
282CVB_DEF_CAPI(cvbres_t, CVC3DCalibratorGetCorrectionOfLaserPlaneInclination, (CVC3DCALIBRATOR Calibrator3D, CVC3DTransformation& IntrinsicAffineMatrix))
283CVB_DEF_CAPI(cvbres_t, CVC3DCalibratorSetCorrectionOfLaserPlaneInclination, (CVC3DCALIBRATOR Calibrator3D,
const CVC3DTransformation& IntrinsicAffineMatrix))
284CVB_DEF_CAPI(cvbres_t, CVC3DCalibratorGetCorrectionOfLaserPlaneInclinationParameters, (CVC3DCALIBRATOR Calibrator, CVC3DTransformation& IntrinsicAffineMatrix, CVC3DAffineTransformationParameters& TransformationParameters))
285CVB_DEF_CAPI(cvbres_t, CVC3DCalibratorSetCorrectionOfLaserPlaneInclinationParameters, (CVC3DCALIBRATOR Calibrator,
const CVC3DTransformation& IntrinsicAffineMatrix,
const CVC3DAffineTransformationParameters& TransformationParameters))
286CVB_DEF_CAPI(cvbres_t, CVC3DCalibratorGetExtrinsicMatrix, (CVC3DCALIBRATOR Calibrator3D, CVC3DTransformation& AffineTransformation))
287CVB_DEF_CAPI(cvbres_t, CVC3DCalibratorSetExtrinsicMatrix, (CVC3DCALIBRATOR Calibrator3D,
const CVC3DTransformation& AffineTransformation))
288CVB_DEF_CAPI(cvbres_t, CVC3DCalibratorSetRangeMapIgnoreValue, (CVC3DCALIBRATOR Calibrator3D,
double Value))
289CVB_DEF_CAPI(cvbres_t, CVC3DCalibratorGetRangeMapIgnoreValue, (CVC3DCALIBRATOR Calibrator3D,
double& Value))
290CVB_DEF_CAPI(cvbres_t, CVC3DCalibratorGetSettings, (CVC3DCALIBRATOR Calibrator, CVC3DSensorSettings& SensorSettings,
double& EncoderStep))
291CVB_DEF_CAPI(cvbres_t, CVC3DPointCloudCalculateBoundingBox, (CVCOMPOSITE PointCloud, CVC3DCuboid& BoundingBox))
292CVB_DEF_CAPI(cvbres_t, CVC3DPointCloudCalculateCenterOfGravity, (CVCOMPOSITE PointCloud, CVC3DPointD& Center))
293CVB_DEF_CAPI(cvbres_t, CVC3DPointCloudCalculateCovarianceMatrix, (CVCOMPOSITE PointCloud, CVC3DMatrix &Covariance))
295CVB_DEF_CAPI(cvbres_t, CVC3DPointCloudCalculatePlaneFromCuboid, (CVCOMPOSITE PointCloud,
const CVC3DCuboid& AOI, CVC3DPlane& Plane))
296CVB_DEF_CAPI(cvbres_t, CVC3DCalculatePlaneFromPointFs, (
const CVC3DPointF* pPoints,
size_t NumPoints, CVC3DPlane& Plane))
297CVB_DEF_CAPI(cvbres_t, CVC3DCalculatePlaneFromPointDs, (
const CVC3DPointD* pPoints,
size_t NumPoints, CVC3DPlane& Plane))
299CVB_DEF_CAPI(cvbres_t, CVC3DCreateDuplicatePointCloud, (CVCOMPOSITE PointCloudIn, CVCOMPOSITE& PointCloudOut))
300CVB_DEF_CAPI(cvbres_t, CVC3DCreateShrinkedDensePointCloud, (CVCOMPOSITE PointCloudIn, CVCOMPOSITE& PointCloudOut))
301CVB_DEF_CAPI(cvbres_t, CVC3DCreateCroppedPointCloud, (CVCOMPOSITE PointCloudIn,
const CVC3DCuboid& ClipBox, CVCOMPOSITE& PointCloudOut))
302CVB_DEF_CAPI(cvbres_t, CVC3DCreateFrustumCroppedPointCloud, (CVCOMPOSITE PointCloudIn,
const CVC3DCuboid& ClipBox,
double Theta,
double Phi, CVCOMPOSITE& PointCloudOut))
303CVB_DEF_CAPI(cvbres_t, CVC3DCreatePlaneCroppedPointCloud, (CVCOMPOSITE PointCloudIn,
const CVC3DPlane& Plane,
const CVC3DRange& Range,
enum CVC3DCropRange
CropRange, CVCOMPOSITE& PointCloudOut));
304CVB_DEF_CAPI(cvbres_t, CVC3DCreateSparseFromDensePointCloud, (CVCOMPOSITE DensePointCloudIn, CVCOMPOSITE& SparsePointCloudOut))
305CVB_DEF_CAPI(cvbres_t, CVC3DCreateDownsampledPointCloud, (CVCOMPOSITE PointCloudIn, CVC3DDownsampleMode Mode, cvbint64_t Value, CVCOMPOSITE& PointCloudOut))
306CVB_DEF_CAPI(cvbres_t, CVC3DCreateScaledPointCloud, (CVCOMPOSITE PointCloudIn, CVC3DFactors Factors, CVCOMPOSITE& PointCloudOut))
307CVB_DEF_CAPI(cvbres_t, CVC3DCreateConvertedPointCloud, (CVCOMPOSITE PointCloudIn, cvbval_t Flags, CVCOMPOSITE& PointCloudOut))
308CVB_DEF_CAPI(cvbres_t, CVC3DCreateTransformedPointCloud, (CVCOMPOSITE PointCloudIn,
const CVC3DTransformation& AffineTransformation, CVCOMPOSITE& PointCloudOut))
309CVB_DEF_CAPI(cvbres_t, CVC3DCreateTransformedPointCloudH, (CVCOMPOSITE PointCloudIn,
const CVC3DMatrixH &Transformation, CVCOMPOSITE& PointCloudOut))
311CVB_DEF_CAPI(cvbres_t, CVC3DTransformPointCloud, (CVCOMPOSITE PointCloudIn,
const CVC3DTransformation& AffineTransformation, CVCOMPOSITE PointCloudOut))
312CVB_DEF_CAPI(cvbres_t, CVC3DTransformPointCloudH, (CVCOMPOSITE PointCloudIn,
const CVC3DMatrixH &Transformation, CVCOMPOSITE PointCloudOut))
314CVB_DEF_CAPI(cvbres_t, CVC3DRotationMatrixFromRotationAngles, (
double Alpha,
double Beta,
double Gamma, CVC3DMatrix R))
315CVB_DEF_CAPI(cvbres_t, CVC3DMatrixFromRotationAnglesScale, (
double Alpha,
double Beta,
double Gamma, CVC3DFactors Scale, CVC3DMatrix TransformationMatrix))
316CVB_DEF_CAPI(cvbres_t, CVC3DRotationAnglesFromRotationMatrix, (
const CVC3DMatrix R,
double& Alpha,
double& Beta,
double& Gamma))
317CVB_DEF_CAPI(cvbres_t, CVC3DRotationAnglesScaleFromMatrix, (
const CVC3DMatrix TransformationMatrix,
double& Alpha,
double& Beta,
double& Gamma, CVC3DFactors& Scale))
318CVB_DEF_CAPI(cvbres_t, CVC3DRotationAnglesScaleFromMatrixApproximation, (
const CVC3DMatrix TransformationMatrix,
double& Alpha,
double& Beta,
double& Gamma, CVC3DFactors& Scale,
double& PrecisionOfApproximation))
320CVB_DEF_CAPI(cvbres_t, CVC3DRotationMatrixFromRollPitchYaw, (
double Roll,
double Pitch,
double Yaw, CVC3DMatrix &R))
321CVB_DEF_CAPI(cvbres_t, CVC3DRollPitchYawFromRotationMatrix, (
const CVC3DMatrix &R,
double& Roll,
double& Pitch,
double& Yaw))
322CVB_DEF_CAPI(cvbres_t, CVC3DMultiplyMatrices, (
const CVC3DMatrix &A,
const CVC3DMatrix &B, CVC3DMatrix &R))
323CVB_DEF_CAPI(cvbres_t, CVC3DInvertMatrix, (
const CVC3DMatrix &A, CVC3DMatrix &AInv))
324CVB_DEF_CAPI(cvbres_t, CVC3DMatrixDeterminant, (
const CVC3DMatrix &A,
double& Determinant))
325CVB_DEF_CAPI(cvbres_t, CVC3DMultiplyTransformations, (
const CVC3DTransformation& A,
const CVC3DTransformation& B, CVC3DTransformation& R))
326CVB_DEF_CAPI(cvbres_t, CVC3DInvertTransformation, (
const CVC3DTransformation& A, CVC3DTransformation& AInv))
327CVB_DEF_CAPI(cvbres_t, CVC3DTransformationDeterminant, (
const CVC3DTransformation& A,
double& Determinant))
329CVB_DEF_CAPI(cvbres_t, CVC3DAlignToXYPlane, (
const CVC3DPlane& Plane, CVC3DTransformation& Transformation))
331CVB_DEF_CAPI(cvbres_t, CVC3DCreateRangeMapFromPointCloud, (CVCOMPOSITE PointCloud, CVC3DRange XRange, CVC3DRange YRange, cvbdim_t TargetWidth, cvbdim_t TargetHeight,
double BackgroundValue, IMG& RangeMap))
332CVB_DEF_CAPI(cvbres_t, CVC3DRangeMapFillGaps, (
const CVC3DGapFilling& Options, IMG RangeMap))
333CVB_DEF_CAPI(cvbres_t, CVC3DCreateDifferenceMap, (IMG RangeMap1, IMG RangeMap2, IMG&
DifferenceMap))
334CVB_DEF_CAPI(cvbres_t, CVC3DCreateSparsePointCloudFromPointer, (
void** pPlaneBasePtrs, cvbdim_t NumPlanes, cvbdatatype_t Datatype, cvbint64_t NumPoints, intptr_t (&PlaneIncs)[4], PFFINALRELEASE ReleaseCallback,
void* pPrivate, CVCOMPOSITE& PointCloud))
336CVB_DEF_CAPI(cvbres_t, CVC3DPointCloudGetPolygonTable, (CVCOMPOSITE Mesh, CVC3DPolygonIndexTable& PolygonTable, cvbint64_t& NumPolygons))
337CVB_DEF_CAPI(cvbres_t, CVC3DRasterMeshToDensePointCloud, (CVCOMPOSITE Mesh,
const CVC3DMatrix CameraRotation,
const CVC3DVector CameraTranslation, CVCOMPOSITE TempBuffer, CVCOMPOSITE DenseCloud))
338CVB_DEF_CAPI(cvbres_t, CVC3DCreateRasterMeshToDensePointCloud, (CVCOMPOSITE Mesh,
const CVC3DMatrix CameraRotation,
const CVC3DVector CameraTranslation,
double XResIncrement,
double YResIncrement, CVCOMPOSITE TempBuffer, CVCOMPOSITE& DenseCloudOut))
339CVB_DEF_CAPI(cvbres_t, CVC3DConvertSparseToDensePointCloudAutomatic, (CVCOMPOSITE SparseCloudIn, CVCOMPOSITE& DenseCloudOut,
size_t& DroppedPoints))
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17
CropRange
Indicates cropping range.
Definition core_3d.hpp:288
CVB_BEGIN_INLINE_NS std::unique_ptr< Image > DifferenceMap(const ImagePlane &rangeMap1, const ImagePlane &rangeMap2)
Subtracts the given rangeMap2 from rangeMap1.
Definition range_map.hpp:32