CVB++ 15.0
c_match_3d.h
1#pragma once
2
3#if defined __GNUC__ && !defined CVB_SHOW_WARNINGS
4# pragma GCC system_header
5#endif // __GNUC__
6
7#include <cstddef>
8#include <cstdint>
9
10#include "../namespace.hpp"
11
12#include "c_core_3d.h"
13
14namespace Cvb
15{
16
17CVB_BEGIN_INLINE_NS
18
19namespace CExports
20{
21enum CVM3DCorrespondenceType
22{
23 CVM3DCT_ClassicICP,
24 CVM3DCT_ConsensICP,
25 CVM3DCT_ConsensusICP
26};
27
28#pragma pack(push, 4)
29struct CVM3DMatchParameters
30{
31 cvbint32_t major;
32 cvbint32_t minor;
33 cvbval_t MaxIterations;
34 double Tolerance;
35 double MinImprovement;
36 double CorrespondenceThreshold;
37 double ConvergenceRadius;
38 cvbbool_t Prealign;
39 CVM3DCorrespondenceType CorrespondenceMethod;
40};
41#pragma pack(pop)
42
43const CVM3DMatchParameters CVM3DDefaultParameters =
44{
45 1, //major
46 0, //minor
47 20, // maxiterations
48 1e-9, //tolerance
49 1e-5, //MinImporvement
50 .8, //CorrespondenceThreshold
51 1e-4, //ConvergenceRadius
52 false, //Prealign
53 CVM3DCT_ConsensICP //CorrespondenceMethod
54};
55
56CVB_DEF_CAPI(cvbres_t, CVM3DMatchPointCloudsAdvanced, (
57 CVCOMPOSITE PointCloudScene, cvbint64_t MaxScenePoints,
58 CVCOMPOSITE PointCloudModel, cvbint64_t MaxModelPoints,
59 const CVM3DMatchParameters& MatchParameter,
60 double& FinalNorm,
61 cvbval_t& NumIterationsNeeded,
62 CVC3DTransformation& Transformation))
63
64CVB_DEF_CAPI(cvbres_t, CVM3DRmsDistanceOfPointClouds, (
65 CVCOMPOSITE PointCloudScene,
66 CVCOMPOSITE PointCloudModel,
67 double &RmsDistance))
68
69}
70
71CVB_END_INLINE_NS
72
73}
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17