HCamPar.h 46 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559
  1. /***********************************************************
  2. * File generated by the HALCON-Compiler hcomp version 20.11
  3. * Usage: Interface to C++
  4. *
  5. * Software by: MVTec Software GmbH, www.mvtec.com
  6. ***********************************************************/
  7. #ifndef HCPP_HCAMPAR
  8. #define HCPP_HCAMPAR
  9. namespace HalconCpp
  10. {
  11. // Represents internal camera parameters.
  12. class LIntExport HCamPar : public HDataBase
  13. {
  14. public:
  15. // Create an uninitialized instance
  16. HCamPar():HDataBase() {}
  17. // Copy constructor
  18. HCamPar(const HCamPar& source) : HDataBase(source) {}
  19. // Constructor from HTuple
  20. explicit HCamPar(const HTuple& tuple) : HDataBase(tuple) {}
  21. // Deep copy of all data represented by this object instance
  22. HCamPar Clone() const;
  23. /***************************************************************************
  24. * Operators *
  25. ***************************************************************************/
  26. // Compute the distance values for a rectified stereo image pair using multi-scanline optimization.
  27. HImage BinocularDistanceMs(const HImage& ImageRect1, const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect2, const HPose& RelPoseRect, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  28. // Compute the distance values for a rectified stereo image pair using multi-scanline optimization.
  29. HImage BinocularDistanceMs(const HImage& ImageRect1, const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect2, const HPose& RelPoseRect, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const HString& GenParamName, const HString& GenParamValue) const;
  30. // Compute the distance values for a rectified stereo image pair using multi-scanline optimization.
  31. HImage BinocularDistanceMs(const HImage& ImageRect1, const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect2, const HPose& RelPoseRect, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const char* GenParamName, const char* GenParamValue) const;
  32. #ifdef _WIN32
  33. // Compute the distance values for a rectified stereo image pair using multi-scanline optimization.
  34. HImage BinocularDistanceMs(const HImage& ImageRect1, const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect2, const HPose& RelPoseRect, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const wchar_t* GenParamName, const wchar_t* GenParamValue) const;
  35. #endif
  36. // Compute the distance values for a rectified stereo image pair using multigrid methods.
  37. HImage BinocularDistanceMg(const HImage& ImageRect1, const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect2, const HPose& RelPoseRect, double GrayConstancy, double GradientConstancy, double Smoothness, double InitialGuess, const HString& CalculateScore, const HTuple& MGParamName, const HTuple& MGParamValue) const;
  38. // Compute the distance values for a rectified stereo image pair using multigrid methods.
  39. HImage BinocularDistanceMg(const HImage& ImageRect1, const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect2, const HPose& RelPoseRect, double GrayConstancy, double GradientConstancy, double Smoothness, double InitialGuess, const HString& CalculateScore, const HString& MGParamName, const HString& MGParamValue) const;
  40. // Compute the distance values for a rectified stereo image pair using multigrid methods.
  41. HImage BinocularDistanceMg(const HImage& ImageRect1, const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect2, const HPose& RelPoseRect, double GrayConstancy, double GradientConstancy, double Smoothness, double InitialGuess, const char* CalculateScore, const char* MGParamName, const char* MGParamValue) const;
  42. #ifdef _WIN32
  43. // Compute the distance values for a rectified stereo image pair using multigrid methods.
  44. HImage BinocularDistanceMg(const HImage& ImageRect1, const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect2, const HPose& RelPoseRect, double GrayConstancy, double GradientConstancy, double Smoothness, double InitialGuess, const wchar_t* CalculateScore, const wchar_t* MGParamName, const wchar_t* MGParamValue) const;
  45. #endif
  46. // Compute the fundamental matrix from the relative orientation of two cameras.
  47. HHomMat2D RelPoseToFundamentalMatrix(const HPose& RelPose, const HTuple& CovRelPose, const HCamPar& CamPar2, HTuple* CovFMat) const;
  48. // Compute the relative orientation between two cameras given image point correspondences and known camera parameters and reconstruct 3D space points.
  49. HPose VectorToRelPose(const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HTuple& CovRR1, const HTuple& CovRC1, const HTuple& CovCC1, const HTuple& CovRR2, const HTuple& CovRC2, const HTuple& CovCC2, const HCamPar& CamPar2, const HString& Method, HTuple* CovRelPose, HTuple* Error, HTuple* X, HTuple* Y, HTuple* Z, HTuple* CovXYZ) const;
  50. // Compute the relative orientation between two cameras given image point correspondences and known camera parameters and reconstruct 3D space points.
  51. HPose VectorToRelPose(const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HTuple& CovRR1, const HTuple& CovRC1, const HTuple& CovCC1, const HTuple& CovRR2, const HTuple& CovRC2, const HTuple& CovCC2, const HCamPar& CamPar2, const HString& Method, HTuple* CovRelPose, double* Error, HTuple* X, HTuple* Y, HTuple* Z, HTuple* CovXYZ) const;
  52. // Compute the relative orientation between two cameras given image point correspondences and known camera parameters and reconstruct 3D space points.
  53. HPose VectorToRelPose(const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HTuple& CovRR1, const HTuple& CovRC1, const HTuple& CovCC1, const HTuple& CovRR2, const HTuple& CovRC2, const HTuple& CovCC2, const HCamPar& CamPar2, const char* Method, HTuple* CovRelPose, double* Error, HTuple* X, HTuple* Y, HTuple* Z, HTuple* CovXYZ) const;
  54. #ifdef _WIN32
  55. // Compute the relative orientation between two cameras given image point correspondences and known camera parameters and reconstruct 3D space points.
  56. HPose VectorToRelPose(const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HTuple& CovRR1, const HTuple& CovRC1, const HTuple& CovCC1, const HTuple& CovRR2, const HTuple& CovRC2, const HTuple& CovCC2, const HCamPar& CamPar2, const wchar_t* Method, HTuple* CovRelPose, double* Error, HTuple* X, HTuple* Y, HTuple* Z, HTuple* CovXYZ) const;
  57. #endif
  58. // Compute the relative orientation between two cameras by automatically finding correspondences between image points.
  59. HPose MatchRelPoseRansac(const HImage& Image1, const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HCamPar& CamPar2, const HString& GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, const HTuple& Rotation, const HTuple& MatchThreshold, const HString& EstimationMethod, const HTuple& DistanceThreshold, Hlong RandSeed, HTuple* CovRelPose, HTuple* Error, HTuple* Points1, HTuple* Points2) const;
  60. // Compute the relative orientation between two cameras by automatically finding correspondences between image points.
  61. HPose MatchRelPoseRansac(const HImage& Image1, const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HCamPar& CamPar2, const HString& GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, double Rotation, Hlong MatchThreshold, const HString& EstimationMethod, double DistanceThreshold, Hlong RandSeed, HTuple* CovRelPose, double* Error, HTuple* Points1, HTuple* Points2) const;
  62. // Compute the relative orientation between two cameras by automatically finding correspondences between image points.
  63. HPose MatchRelPoseRansac(const HImage& Image1, const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HCamPar& CamPar2, const char* GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, double Rotation, Hlong MatchThreshold, const char* EstimationMethod, double DistanceThreshold, Hlong RandSeed, HTuple* CovRelPose, double* Error, HTuple* Points1, HTuple* Points2) const;
  64. #ifdef _WIN32
  65. // Compute the relative orientation between two cameras by automatically finding correspondences between image points.
  66. HPose MatchRelPoseRansac(const HImage& Image1, const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HCamPar& CamPar2, const wchar_t* GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, double Rotation, Hlong MatchThreshold, const wchar_t* EstimationMethod, double DistanceThreshold, Hlong RandSeed, HTuple* CovRelPose, double* Error, HTuple* Points1, HTuple* Points2) const;
  67. #endif
  68. // Compute the distance values for a rectified stereo image pair using correlation techniques.
  69. HImage BinocularDistance(const HImage& ImageRect1, const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect2, const HPose& RelPoseRect, const HString& Method, Hlong MaskWidth, Hlong MaskHeight, const HTuple& TextureThresh, Hlong MinDisparity, Hlong MaxDisparity, Hlong NumLevels, const HTuple& ScoreThresh, const HTuple& Filter, const HTuple& SubDistance) const;
  70. // Compute the distance values for a rectified stereo image pair using correlation techniques.
  71. HImage BinocularDistance(const HImage& ImageRect1, const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect2, const HPose& RelPoseRect, const HString& Method, Hlong MaskWidth, Hlong MaskHeight, double TextureThresh, Hlong MinDisparity, Hlong MaxDisparity, Hlong NumLevels, double ScoreThresh, const HString& Filter, const HString& SubDistance) const;
  72. // Compute the distance values for a rectified stereo image pair using correlation techniques.
  73. HImage BinocularDistance(const HImage& ImageRect1, const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect2, const HPose& RelPoseRect, const char* Method, Hlong MaskWidth, Hlong MaskHeight, double TextureThresh, Hlong MinDisparity, Hlong MaxDisparity, Hlong NumLevels, double ScoreThresh, const char* Filter, const char* SubDistance) const;
  74. #ifdef _WIN32
  75. // Compute the distance values for a rectified stereo image pair using correlation techniques.
  76. HImage BinocularDistance(const HImage& ImageRect1, const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect2, const HPose& RelPoseRect, const wchar_t* Method, Hlong MaskWidth, Hlong MaskHeight, double TextureThresh, Hlong MinDisparity, Hlong MaxDisparity, Hlong NumLevels, double ScoreThresh, const wchar_t* Filter, const wchar_t* SubDistance) const;
  77. #endif
  78. // Get a 3D point from the intersection of two lines of sight within a binocular camera system.
  79. void IntersectLinesOfSight(const HCamPar& CamParam2, const HPose& RelPose, const HTuple& Row1, const HTuple& Col1, const HTuple& Row2, const HTuple& Col2, HTuple* X, HTuple* Y, HTuple* Z, HTuple* Dist) const;
  80. // Get a 3D point from the intersection of two lines of sight within a binocular camera system.
  81. void IntersectLinesOfSight(const HCamPar& CamParam2, const HPose& RelPose, double Row1, double Col1, double Row2, double Col2, double* X, double* Y, double* Z, double* Dist) const;
  82. // Transform a disparity image into 3D points in a rectified stereo system.
  83. HImage DisparityImageToXyz(const HImage& Disparity, HImage* Y, HImage* Z, const HCamPar& CamParamRect2, const HPose& RelPoseRect) const;
  84. // Transform an image point and its disparity into a 3D point in a rectified stereo system.
  85. void DisparityToPoint3d(const HCamPar& CamParamRect2, const HPose& RelPoseRect, const HTuple& Row1, const HTuple& Col1, const HTuple& Disparity, HTuple* X, HTuple* Y, HTuple* Z) const;
  86. // Transform an image point and its disparity into a 3D point in a rectified stereo system.
  87. void DisparityToPoint3d(const HCamPar& CamParamRect2, const HPose& RelPoseRect, double Row1, double Col1, double Disparity, double* X, double* Y, double* Z) const;
  88. // Transform a disparity value into a distance value in a rectified binocular stereo system.
  89. HTuple DisparityToDistance(const HCamPar& CamParamRect2, const HPose& RelPoseRect, const HTuple& Disparity) const;
  90. // Transform a disparity value into a distance value in a rectified binocular stereo system.
  91. double DisparityToDistance(const HCamPar& CamParamRect2, const HPose& RelPoseRect, double Disparity) const;
  92. // Transform a distance value into a disparity in a rectified stereo system.
  93. HTuple DistanceToDisparity(const HCamPar& CamParamRect2, const HPose& RelPoseRect, const HTuple& Distance) const;
  94. // Transform a distance value into a disparity in a rectified stereo system.
  95. double DistanceToDisparity(const HCamPar& CamParamRect2, const HPose& RelPoseRect, double Distance) const;
  96. // Generate transformation maps that describe the mapping of the images of a binocular camera pair to a common rectified image plane.
  97. HImage GenBinocularRectificationMap(HImage* Map2, const HCamPar& CamParam2, const HPose& RelPose, double SubSampling, const HString& Method, const HString& MapType, HCamPar* CamParamRect1, HCamPar* CamParamRect2, HPose* CamPoseRect1, HPose* CamPoseRect2, HPose* RelPoseRect) const;
  98. // Generate transformation maps that describe the mapping of the images of a binocular camera pair to a common rectified image plane.
  99. HImage GenBinocularRectificationMap(HImage* Map2, const HCamPar& CamParam2, const HPose& RelPose, double SubSampling, const char* Method, const char* MapType, HCamPar* CamParamRect1, HCamPar* CamParamRect2, HPose* CamPoseRect1, HPose* CamPoseRect2, HPose* RelPoseRect) const;
  100. #ifdef _WIN32
  101. // Generate transformation maps that describe the mapping of the images of a binocular camera pair to a common rectified image plane.
  102. HImage GenBinocularRectificationMap(HImage* Map2, const HCamPar& CamParam2, const HPose& RelPose, double SubSampling, const wchar_t* Method, const wchar_t* MapType, HCamPar* CamParamRect1, HCamPar* CamParamRect2, HPose* CamPoseRect1, HPose* CamPoseRect2, HPose* RelPoseRect) const;
  103. #endif
  104. // Determine all camera parameters of a binocular stereo system.
  105. HCamPar BinocularCalibration(const HTuple& NX, const HTuple& NY, const HTuple& NZ, const HTuple& NRow1, const HTuple& NCol1, const HTuple& NRow2, const HTuple& NCol2, const HCamPar& StartCamParam2, const HPoseArray& NStartPose1, const HPoseArray& NStartPose2, const HTuple& EstimateParams, HCamPar* CamParam2, HPoseArray* NFinalPose1, HPoseArray* NFinalPose2, HPose* RelPose, HTuple* Errors) const;
  106. // Determine all camera parameters of a binocular stereo system.
  107. HCamPar BinocularCalibration(const HTuple& NX, const HTuple& NY, const HTuple& NZ, const HTuple& NRow1, const HTuple& NCol1, const HTuple& NRow2, const HTuple& NCol2, const HCamPar& StartCamParam2, const HPose& NStartPose1, const HPose& NStartPose2, const HTuple& EstimateParams, HCamPar* CamParam2, HPose* NFinalPose1, HPose* NFinalPose2, HPose* RelPose, double* Errors) const;
  108. // Find the best matches of a calibrated descriptor model in an image and return their 3D pose.
  109. HPoseArray FindCalibDescriptorModel(const HImage& Image, const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, const HTuple& MinScore, Hlong NumMatches, const HTuple& ScoreType, HTuple* Score) const;
  110. // Find the best matches of a calibrated descriptor model in an image and return their 3D pose.
  111. HPose FindCalibDescriptorModel(const HImage& Image, const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, double MinScore, Hlong NumMatches, const HString& ScoreType, double* Score) const;
  112. // Find the best matches of a calibrated descriptor model in an image and return their 3D pose.
  113. HPose FindCalibDescriptorModel(const HImage& Image, const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, double MinScore, Hlong NumMatches, const char* ScoreType, double* Score) const;
  114. #ifdef _WIN32
  115. // Find the best matches of a calibrated descriptor model in an image and return their 3D pose.
  116. HPose FindCalibDescriptorModel(const HImage& Image, const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, double MinScore, Hlong NumMatches, const wchar_t* ScoreType, double* Score) const;
  117. #endif
  118. // Create a descriptor model for calibrated perspective matching.
  119. HDescriptorModel CreateCalibDescriptorModel(const HImage& Template, const HPose& ReferencePose, const HString& DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed) const;
  120. // Create a descriptor model for calibrated perspective matching.
  121. HDescriptorModel CreateCalibDescriptorModel(const HImage& Template, const HPose& ReferencePose, const char* DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed) const;
  122. #ifdef _WIN32
  123. // Create a descriptor model for calibrated perspective matching.
  124. HDescriptorModel CreateCalibDescriptorModel(const HImage& Template, const HPose& ReferencePose, const wchar_t* DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed) const;
  125. #endif
  126. // Prepare a deformable model for planar calibrated matching from XLD contours.
  127. HDeformableModel CreatePlanarCalibDeformableModelXld(const HXLDCont& Contours, const HPose& ReferencePose, const HTuple& NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& AngleStep, double ScaleRMin, const HTuple& ScaleRMax, const HTuple& ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, const HTuple& ScaleCStep, const HTuple& Optimization, const HString& Metric, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  128. // Prepare a deformable model for planar calibrated matching from XLD contours.
  129. HDeformableModel CreatePlanarCalibDeformableModelXld(const HXLDCont& Contours, const HPose& ReferencePose, Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const HString& Optimization, const HString& Metric, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  130. // Prepare a deformable model for planar calibrated matching from XLD contours.
  131. HDeformableModel CreatePlanarCalibDeformableModelXld(const HXLDCont& Contours, const HPose& ReferencePose, Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const char* Optimization, const char* Metric, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  132. #ifdef _WIN32
  133. // Prepare a deformable model for planar calibrated matching from XLD contours.
  134. HDeformableModel CreatePlanarCalibDeformableModelXld(const HXLDCont& Contours, const HPose& ReferencePose, Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const wchar_t* Optimization, const wchar_t* Metric, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  135. #endif
  136. // Create a deformable model for calibrated perspective matching.
  137. HDeformableModel CreatePlanarCalibDeformableModel(const HImage& Template, const HPose& ReferencePose, const HTuple& NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& AngleStep, double ScaleRMin, const HTuple& ScaleRMax, const HTuple& ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, const HTuple& ScaleCStep, const HTuple& Optimization, const HString& Metric, const HTuple& Contrast, const HTuple& MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  138. // Create a deformable model for calibrated perspective matching.
  139. HDeformableModel CreatePlanarCalibDeformableModel(const HImage& Template, const HPose& ReferencePose, Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const HString& Optimization, const HString& Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  140. // Create a deformable model for calibrated perspective matching.
  141. HDeformableModel CreatePlanarCalibDeformableModel(const HImage& Template, const HPose& ReferencePose, Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const char* Optimization, const char* Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  142. #ifdef _WIN32
  143. // Create a deformable model for calibrated perspective matching.
  144. HDeformableModel CreatePlanarCalibDeformableModel(const HImage& Template, const HPose& ReferencePose, Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const wchar_t* Optimization, const wchar_t* Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  145. #endif
  146. // Project the edges of a 3D shape model into image coordinates.
  147. HXLDCont ProjectShapeModel3d(const HShapeModel3D& ShapeModel3DID, const HPose& Pose, const HString& HiddenSurfaceRemoval, const HTuple& MinFaceAngle) const;
  148. // Project the edges of a 3D shape model into image coordinates.
  149. HXLDCont ProjectShapeModel3d(const HShapeModel3D& ShapeModel3DID, const HPose& Pose, const HString& HiddenSurfaceRemoval, double MinFaceAngle) const;
  150. // Project the edges of a 3D shape model into image coordinates.
  151. HXLDCont ProjectShapeModel3d(const HShapeModel3D& ShapeModel3DID, const HPose& Pose, const char* HiddenSurfaceRemoval, double MinFaceAngle) const;
  152. #ifdef _WIN32
  153. // Project the edges of a 3D shape model into image coordinates.
  154. HXLDCont ProjectShapeModel3d(const HShapeModel3D& ShapeModel3DID, const HPose& Pose, const wchar_t* HiddenSurfaceRemoval, double MinFaceAngle) const;
  155. #endif
  156. // Prepare a 3D object model for matching.
  157. HShapeModel3D CreateShapeModel3d(const HObjectModel3D& ObjectModel3D, double RefRotX, double RefRotY, double RefRotZ, const HString& OrderOfRotation, double LongitudeMin, double LongitudeMax, double LatitudeMin, double LatitudeMax, double CamRollMin, double CamRollMax, double DistMin, double DistMax, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  158. // Prepare a 3D object model for matching.
  159. HShapeModel3D CreateShapeModel3d(const HObjectModel3D& ObjectModel3D, double RefRotX, double RefRotY, double RefRotZ, const HString& OrderOfRotation, double LongitudeMin, double LongitudeMax, double LatitudeMin, double LatitudeMax, double CamRollMin, double CamRollMax, double DistMin, double DistMax, Hlong MinContrast, const HString& GenParamName, Hlong GenParamValue) const;
  160. // Prepare a 3D object model for matching.
  161. HShapeModel3D CreateShapeModel3d(const HObjectModel3D& ObjectModel3D, double RefRotX, double RefRotY, double RefRotZ, const char* OrderOfRotation, double LongitudeMin, double LongitudeMax, double LatitudeMin, double LatitudeMax, double CamRollMin, double CamRollMax, double DistMin, double DistMax, Hlong MinContrast, const char* GenParamName, Hlong GenParamValue) const;
  162. #ifdef _WIN32
  163. // Prepare a 3D object model for matching.
  164. HShapeModel3D CreateShapeModel3d(const HObjectModel3D& ObjectModel3D, double RefRotX, double RefRotY, double RefRotZ, const wchar_t* OrderOfRotation, double LongitudeMin, double LongitudeMax, double LatitudeMin, double LatitudeMax, double CamRollMin, double CamRollMax, double DistMin, double DistMax, Hlong MinContrast, const wchar_t* GenParamName, Hlong GenParamValue) const;
  165. #endif
  166. // Remove points from a 3D object model by projecting it to a virtual view and removing all points outside of a given region.
  167. HObjectModel3DArray ReduceObjectModel3dByView(const HRegion& Region, const HObjectModel3DArray& ObjectModel3D, const HPoseArray& Pose) const;
  168. // Remove points from a 3D object model by projecting it to a virtual view and removing all points outside of a given region.
  169. HObjectModel3D ReduceObjectModel3dByView(const HRegion& Region, const HObjectModel3D& ObjectModel3D, const HPose& Pose) const;
  170. // Render 3D object models to get an image.
  171. HImage RenderObjectModel3d(const HObjectModel3DArray& ObjectModel3D, const HPoseArray& Pose, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  172. // Render 3D object models to get an image.
  173. HImage RenderObjectModel3d(const HObjectModel3D& ObjectModel3D, const HPose& Pose, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  174. // Display 3D object models.
  175. void DispObjectModel3d(const HWindow& WindowHandle, const HObjectModel3DArray& ObjectModel3D, const HPoseArray& Pose, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  176. // Display 3D object models.
  177. void DispObjectModel3d(const HWindow& WindowHandle, const HObjectModel3D& ObjectModel3D, const HPose& Pose, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  178. // Transform 3D points from a 3D object model to images.
  179. HImage ObjectModel3dToXyz(HImage* Y, HImage* Z, const HObjectModel3DArray& ObjectModel3D, const HString& Type, const HPose& Pose) const;
  180. // Transform 3D points from a 3D object model to images.
  181. HImage ObjectModel3dToXyz(HImage* Y, HImage* Z, const HObjectModel3D& ObjectModel3D, const HString& Type, const HPose& Pose) const;
  182. // Transform 3D points from a 3D object model to images.
  183. HImage ObjectModel3dToXyz(HImage* Y, HImage* Z, const HObjectModel3D& ObjectModel3D, const char* Type, const HPose& Pose) const;
  184. #ifdef _WIN32
  185. // Transform 3D points from a 3D object model to images.
  186. HImage ObjectModel3dToXyz(HImage* Y, HImage* Z, const HObjectModel3D& ObjectModel3D, const wchar_t* Type, const HPose& Pose) const;
  187. #endif
  188. // Project a 3D object model into image coordinates.
  189. HXLDCont ProjectObjectModel3d(const HObjectModel3D& ObjectModel3D, const HPose& Pose, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  190. // Project a 3D object model into image coordinates.
  191. HXLDCont ProjectObjectModel3d(const HObjectModel3D& ObjectModel3D, const HPose& Pose, const HString& GenParamName, const HString& GenParamValue) const;
  192. // Project a 3D object model into image coordinates.
  193. HXLDCont ProjectObjectModel3d(const HObjectModel3D& ObjectModel3D, const HPose& Pose, const char* GenParamName, const char* GenParamValue) const;
  194. #ifdef _WIN32
  195. // Project a 3D object model into image coordinates.
  196. HXLDCont ProjectObjectModel3d(const HObjectModel3D& ObjectModel3D, const HPose& Pose, const wchar_t* GenParamName, const wchar_t* GenParamValue) const;
  197. #endif
  198. // Add a camera to a 3D scene.
  199. Hlong AddScene3dCamera(const HScene3D& Scene3D) const;
  200. // Compute the calibrated scene flow between two stereo image pairs.
  201. HObjectModel3DArray SceneFlowCalib(const HImage& ImageRect1T1, const HImage& ImageRect2T1, const HImage& ImageRect1T2, const HImage& ImageRect2T2, const HImage& Disparity, const HTuple& SmoothingFlow, const HTuple& SmoothingDisparity, const HTuple& GenParamName, const HTuple& GenParamValue, const HCamPar& CamParamRect2, const HPose& RelPoseRect) const;
  202. // Compute the calibrated scene flow between two stereo image pairs.
  203. HObjectModel3D SceneFlowCalib(const HImage& ImageRect1T1, const HImage& ImageRect2T1, const HImage& ImageRect1T2, const HImage& ImageRect2T2, const HImage& Disparity, double SmoothingFlow, double SmoothingDisparity, const HString& GenParamName, const HString& GenParamValue, const HCamPar& CamParamRect2, const HPose& RelPoseRect) const;
  204. // Compute the calibrated scene flow between two stereo image pairs.
  205. HObjectModel3D SceneFlowCalib(const HImage& ImageRect1T1, const HImage& ImageRect2T1, const HImage& ImageRect1T2, const HImage& ImageRect2T2, const HImage& Disparity, double SmoothingFlow, double SmoothingDisparity, const char* GenParamName, const char* GenParamValue, const HCamPar& CamParamRect2, const HPose& RelPoseRect) const;
  206. #ifdef _WIN32
  207. // Compute the calibrated scene flow between two stereo image pairs.
  208. HObjectModel3D SceneFlowCalib(const HImage& ImageRect1T1, const HImage& ImageRect2T1, const HImage& ImageRect1T2, const HImage& ImageRect2T2, const HImage& Disparity, double SmoothingFlow, double SmoothingDisparity, const wchar_t* GenParamName, const wchar_t* GenParamValue, const HCamPar& CamParamRect2, const HPose& RelPoseRect) const;
  209. #endif
  210. // Compute an absolute pose out of point correspondences between world and image coordinates.
  211. HPose VectorToPose(const HTuple& WorldX, const HTuple& WorldY, const HTuple& WorldZ, const HTuple& ImageRow, const HTuple& ImageColumn, const HString& Method, const HTuple& QualityType, HTuple* Quality) const;
  212. // Compute an absolute pose out of point correspondences between world and image coordinates.
  213. HPose VectorToPose(const HTuple& WorldX, const HTuple& WorldY, const HTuple& WorldZ, const HTuple& ImageRow, const HTuple& ImageColumn, const HString& Method, const HString& QualityType, double* Quality) const;
  214. // Compute an absolute pose out of point correspondences between world and image coordinates.
  215. HPose VectorToPose(const HTuple& WorldX, const HTuple& WorldY, const HTuple& WorldZ, const HTuple& ImageRow, const HTuple& ImageColumn, const char* Method, const char* QualityType, double* Quality) const;
  216. #ifdef _WIN32
  217. // Compute an absolute pose out of point correspondences between world and image coordinates.
  218. HPose VectorToPose(const HTuple& WorldX, const HTuple& WorldY, const HTuple& WorldZ, const HTuple& ImageRow, const HTuple& ImageColumn, const wchar_t* Method, const wchar_t* QualityType, double* Quality) const;
  219. #endif
  220. // Calibrate the radial distortion.
  221. HXLDCont RadialDistortionSelfCalibration(const HXLDCont& Contours, Hlong Width, Hlong Height, double InlierThreshold, Hlong RandSeed, const HString& DistortionModel, const HString& DistortionCenter, double PrincipalPointVar);
  222. // Calibrate the radial distortion.
  223. HXLDCont RadialDistortionSelfCalibration(const HXLDCont& Contours, Hlong Width, Hlong Height, double InlierThreshold, Hlong RandSeed, const char* DistortionModel, const char* DistortionCenter, double PrincipalPointVar);
  224. #ifdef _WIN32
  225. // Calibrate the radial distortion.
  226. HXLDCont RadialDistortionSelfCalibration(const HXLDCont& Contours, Hlong Width, Hlong Height, double InlierThreshold, Hlong RandSeed, const wchar_t* DistortionModel, const wchar_t* DistortionCenter, double PrincipalPointVar);
  227. #endif
  228. // Compute a camera matrix from internal camera parameters.
  229. HHomMat2D CamParToCamMat(Hlong* ImageWidth, Hlong* ImageHeight) const;
  230. // Compute the internal camera parameters from a camera matrix.
  231. void CamMatToCamPar(const HHomMat2D& CameraMatrix, double Kappa, Hlong ImageWidth, Hlong ImageHeight);
  232. // Determine the 3D pose of a rectangle from its perspective 2D projection
  233. HPoseArray GetRectanglePose(const HXLD& Contour, const HTuple& Width, const HTuple& Height, const HString& WeightingMode, double ClippingFactor, HTuple* CovPose, HTuple* Error) const;
  234. // Determine the 3D pose of a rectangle from its perspective 2D projection
  235. HPose GetRectanglePose(const HXLD& Contour, double Width, double Height, const HString& WeightingMode, double ClippingFactor, HTuple* CovPose, HTuple* Error) const;
  236. // Determine the 3D pose of a rectangle from its perspective 2D projection
  237. HPose GetRectanglePose(const HXLD& Contour, double Width, double Height, const char* WeightingMode, double ClippingFactor, HTuple* CovPose, HTuple* Error) const;
  238. #ifdef _WIN32
  239. // Determine the 3D pose of a rectangle from its perspective 2D projection
  240. HPose GetRectanglePose(const HXLD& Contour, double Width, double Height, const wchar_t* WeightingMode, double ClippingFactor, HTuple* CovPose, HTuple* Error) const;
  241. #endif
  242. // Determine the 3D pose of a circle from its perspective 2D projection.
  243. HTuple GetCirclePose(const HXLD& Contour, const HTuple& Radius, const HString& OutputType, HTuple* Pose2) const;
  244. // Determine the 3D pose of a circle from its perspective 2D projection.
  245. HTuple GetCirclePose(const HXLD& Contour, double Radius, const HString& OutputType, HTuple* Pose2) const;
  246. // Determine the 3D pose of a circle from its perspective 2D projection.
  247. HTuple GetCirclePose(const HXLD& Contour, double Radius, const char* OutputType, HTuple* Pose2) const;
  248. #ifdef _WIN32
  249. // Determine the 3D pose of a circle from its perspective 2D projection.
  250. HTuple GetCirclePose(const HXLD& Contour, double Radius, const wchar_t* OutputType, HTuple* Pose2) const;
  251. #endif
  252. // Generate a projection map that describes the mapping of images corresponding to a changing radial distortion.
  253. HImage GenRadialDistortionMap(const HCamPar& CamParamOut, const HString& MapType) const;
  254. // Generate a projection map that describes the mapping of images corresponding to a changing radial distortion.
  255. HImage GenRadialDistortionMap(const HCamPar& CamParamOut, const char* MapType) const;
  256. #ifdef _WIN32
  257. // Generate a projection map that describes the mapping of images corresponding to a changing radial distortion.
  258. HImage GenRadialDistortionMap(const HCamPar& CamParamOut, const wchar_t* MapType) const;
  259. #endif
  260. // Generate a projection map that describes the mapping between the image plane and the plane z=0 of a world coordinate system.
  261. HImage GenImageToWorldPlaneMap(const HPose& WorldPose, Hlong WidthIn, Hlong HeightIn, Hlong WidthMapped, Hlong HeightMapped, const HTuple& Scale, const HString& MapType) const;
  262. // Generate a projection map that describes the mapping between the image plane and the plane z=0 of a world coordinate system.
  263. HImage GenImageToWorldPlaneMap(const HPose& WorldPose, Hlong WidthIn, Hlong HeightIn, Hlong WidthMapped, Hlong HeightMapped, const HString& Scale, const HString& MapType) const;
  264. // Generate a projection map that describes the mapping between the image plane and the plane z=0 of a world coordinate system.
  265. HImage GenImageToWorldPlaneMap(const HPose& WorldPose, Hlong WidthIn, Hlong HeightIn, Hlong WidthMapped, Hlong HeightMapped, const char* Scale, const char* MapType) const;
  266. #ifdef _WIN32
  267. // Generate a projection map that describes the mapping between the image plane and the plane z=0 of a world coordinate system.
  268. HImage GenImageToWorldPlaneMap(const HPose& WorldPose, Hlong WidthIn, Hlong HeightIn, Hlong WidthMapped, Hlong HeightMapped, const wchar_t* Scale, const wchar_t* MapType) const;
  269. #endif
  270. // Rectify an image by transforming it into the plane z=0 of a world coordinate system.
  271. HImage ImageToWorldPlane(const HImage& Image, const HPose& WorldPose, Hlong Width, Hlong Height, const HTuple& Scale, const HString& Interpolation) const;
  272. // Rectify an image by transforming it into the plane z=0 of a world coordinate system.
  273. HImage ImageToWorldPlane(const HImage& Image, const HPose& WorldPose, Hlong Width, Hlong Height, const HString& Scale, const HString& Interpolation) const;
  274. // Rectify an image by transforming it into the plane z=0 of a world coordinate system.
  275. HImage ImageToWorldPlane(const HImage& Image, const HPose& WorldPose, Hlong Width, Hlong Height, const char* Scale, const char* Interpolation) const;
  276. #ifdef _WIN32
  277. // Rectify an image by transforming it into the plane z=0 of a world coordinate system.
  278. HImage ImageToWorldPlane(const HImage& Image, const HPose& WorldPose, Hlong Width, Hlong Height, const wchar_t* Scale, const wchar_t* Interpolation) const;
  279. #endif
  280. // Transform image points into the plane z=0 of a world coordinate system.
  281. void ImagePointsToWorldPlane(const HPose& WorldPose, const HTuple& Rows, const HTuple& Cols, const HTuple& Scale, HTuple* X, HTuple* Y) const;
  282. // Transform image points into the plane z=0 of a world coordinate system.
  283. void ImagePointsToWorldPlane(const HPose& WorldPose, const HTuple& Rows, const HTuple& Cols, const HString& Scale, HTuple* X, HTuple* Y) const;
  284. // Transform image points into the plane z=0 of a world coordinate system.
  285. void ImagePointsToWorldPlane(const HPose& WorldPose, const HTuple& Rows, const HTuple& Cols, const char* Scale, HTuple* X, HTuple* Y) const;
  286. #ifdef _WIN32
  287. // Transform image points into the plane z=0 of a world coordinate system.
  288. void ImagePointsToWorldPlane(const HPose& WorldPose, const HTuple& Rows, const HTuple& Cols, const wchar_t* Scale, HTuple* X, HTuple* Y) const;
  289. #endif
  290. // Perform a hand-eye calibration.
  291. HPose HandEyeCalibration(const HTuple& X, const HTuple& Y, const HTuple& Z, const HTuple& Row, const HTuple& Col, const HTuple& NumPoints, const HPoseArray& RobotPoses, const HString& Method, const HTuple& QualityType, HPose* CalibrationPose, HTuple* Quality) const;
  292. // Perform a hand-eye calibration.
  293. HPose HandEyeCalibration(const HTuple& X, const HTuple& Y, const HTuple& Z, const HTuple& Row, const HTuple& Col, const HTuple& NumPoints, const HPoseArray& RobotPoses, const HString& Method, const HString& QualityType, HPose* CalibrationPose, double* Quality) const;
  294. // Perform a hand-eye calibration.
  295. HPose HandEyeCalibration(const HTuple& X, const HTuple& Y, const HTuple& Z, const HTuple& Row, const HTuple& Col, const HTuple& NumPoints, const HPoseArray& RobotPoses, const char* Method, const char* QualityType, HPose* CalibrationPose, double* Quality) const;
  296. #ifdef _WIN32
  297. // Perform a hand-eye calibration.
  298. HPose HandEyeCalibration(const HTuple& X, const HTuple& Y, const HTuple& Z, const HTuple& Row, const HTuple& Col, const HTuple& NumPoints, const HPoseArray& RobotPoses, const wchar_t* Method, const wchar_t* QualityType, HPose* CalibrationPose, double* Quality) const;
  299. #endif
  300. // Change the radial distortion of contours.
  301. HXLDCont ChangeRadialDistortionContoursXld(const HXLDCont& Contours, const HCamPar& CamParamOut) const;
  302. // Change the radial distortion of pixel coordinates.
  303. void ChangeRadialDistortionPoints(const HTuple& Row, const HTuple& Col, const HCamPar& CamParamOut, HTuple* RowChanged, HTuple* ColChanged) const;
  304. // Change the radial distortion of an image.
  305. HImage ChangeRadialDistortionImage(const HImage& Image, const HRegion& Region, const HCamPar& CamParamOut) const;
  306. // Determine new camera parameters in accordance to the specified radial distortion.
  307. HCamPar ChangeRadialDistortionCamPar(const HString& Mode, const HTuple& DistortionCoeffs) const;
  308. // Determine new camera parameters in accordance to the specified radial distortion.
  309. HCamPar ChangeRadialDistortionCamPar(const HString& Mode, double DistortionCoeffs) const;
  310. // Determine new camera parameters in accordance to the specified radial distortion.
  311. HCamPar ChangeRadialDistortionCamPar(const char* Mode, double DistortionCoeffs) const;
  312. #ifdef _WIN32
  313. // Determine new camera parameters in accordance to the specified radial distortion.
  314. HCamPar ChangeRadialDistortionCamPar(const wchar_t* Mode, double DistortionCoeffs) const;
  315. #endif
  316. // Compute the line of sight corresponding to a point in the image.
  317. void GetLineOfSight(const HTuple& Row, const HTuple& Column, HTuple* PX, HTuple* PY, HTuple* PZ, HTuple* QX, HTuple* QY, HTuple* QZ) const;
  318. // Project 3D points into (sub-)pixel image coordinates.
  319. void Project3dPoint(const HTuple& X, const HTuple& Y, const HTuple& Z, HTuple* Row, HTuple* Column) const;
  320. // Convert internal camera parameters and a 3D pose into a 3x4 projection matrix.
  321. HHomMat3D CamParPoseToHomMat3d(const HPose& Pose) const;
  322. // Deserialize the serialized internal camera parameters.
  323. void DeserializeCamPar(const HSerializedItem& SerializedItemHandle);
  324. // Serialize the internal camera parameters.
  325. HSerializedItem SerializeCamPar() const;
  326. // Read internal camera parameters from a file.
  327. void ReadCamPar(const HString& CamParFile);
  328. // Read internal camera parameters from a file.
  329. void ReadCamPar(const char* CamParFile);
  330. #ifdef _WIN32
  331. // Read internal camera parameters from a file.
  332. void ReadCamPar(const wchar_t* CamParFile);
  333. #endif
  334. // Write internal camera parameters into a file.
  335. void WriteCamPar(const HString& CamParFile) const;
  336. // Write internal camera parameters into a file.
  337. void WriteCamPar(const char* CamParFile) const;
  338. #ifdef _WIN32
  339. // Write internal camera parameters into a file.
  340. void WriteCamPar(const wchar_t* CamParFile) const;
  341. #endif
  342. // Simulate an image with calibration plate.
  343. HImage SimCaltab(const HString& CalPlateDescr, const HPose& CalPlatePose, Hlong GrayBackground, Hlong GrayPlate, Hlong GrayMarks, double ScaleFac) const;
  344. // Simulate an image with calibration plate.
  345. HImage SimCaltab(const char* CalPlateDescr, const HPose& CalPlatePose, Hlong GrayBackground, Hlong GrayPlate, Hlong GrayMarks, double ScaleFac) const;
  346. #ifdef _WIN32
  347. // Simulate an image with calibration plate.
  348. HImage SimCaltab(const wchar_t* CalPlateDescr, const HPose& CalPlatePose, Hlong GrayBackground, Hlong GrayPlate, Hlong GrayMarks, double ScaleFac) const;
  349. #endif
  350. // Project and visualize the 3D model of the calibration plate in the image.
  351. void DispCaltab(const HWindow& WindowHandle, const HString& CalPlateDescr, const HPose& CalPlatePose, double ScaleFac) const;
  352. // Project and visualize the 3D model of the calibration plate in the image.
  353. void DispCaltab(const HWindow& WindowHandle, const char* CalPlateDescr, const HPose& CalPlatePose, double ScaleFac) const;
  354. #ifdef _WIN32
  355. // Project and visualize the 3D model of the calibration plate in the image.
  356. void DispCaltab(const HWindow& WindowHandle, const wchar_t* CalPlateDescr, const HPose& CalPlatePose, double ScaleFac) const;
  357. #endif
  358. // Determine all camera parameters by a simultaneous minimization process.
  359. HCamPar CameraCalibration(const HTuple& NX, const HTuple& NY, const HTuple& NZ, const HTuple& NRow, const HTuple& NCol, const HPoseArray& NStartPose, const HTuple& EstimateParams, HPoseArray* NFinalPose, HTuple* Errors) const;
  360. // Determine all camera parameters by a simultaneous minimization process.
  361. HCamPar CameraCalibration(const HTuple& NX, const HTuple& NY, const HTuple& NZ, const HTuple& NRow, const HTuple& NCol, const HPose& NStartPose, const HTuple& EstimateParams, HPose* NFinalPose, double* Errors) const;
  362. // Extract rectangularly arranged 2D calibration marks from the image and calculate initial values for the external camera parameters.
  363. HTuple FindMarksAndPose(const HImage& Image, const HRegion& CalPlateRegion, const HString& CalPlateDescr, Hlong StartThresh, Hlong DeltaThresh, Hlong MinThresh, double Alpha, double MinContLength, double MaxDiamMarks, HTuple* CCoord, HPose* StartPose) const;
  364. // Extract rectangularly arranged 2D calibration marks from the image and calculate initial values for the external camera parameters.
  365. HTuple FindMarksAndPose(const HImage& Image, const HRegion& CalPlateRegion, const char* CalPlateDescr, Hlong StartThresh, Hlong DeltaThresh, Hlong MinThresh, double Alpha, double MinContLength, double MaxDiamMarks, HTuple* CCoord, HPose* StartPose) const;
  366. #ifdef _WIN32
  367. // Extract rectangularly arranged 2D calibration marks from the image and calculate initial values for the external camera parameters.
  368. HTuple FindMarksAndPose(const HImage& Image, const HRegion& CalPlateRegion, const wchar_t* CalPlateDescr, Hlong StartThresh, Hlong DeltaThresh, Hlong MinThresh, double Alpha, double MinContLength, double MaxDiamMarks, HTuple* CCoord, HPose* StartPose) const;
  369. #endif
  370. // Define type, parameters, and relative pose of a camera in a camera setup model.
  371. void SetCameraSetupCamParam(const HCameraSetupModel& CameraSetupModelID, const HTuple& CameraIdx, const HTuple& CameraType, const HTuple& CameraPose) const;
  372. // Define type, parameters, and relative pose of a camera in a camera setup model.
  373. void SetCameraSetupCamParam(const HCameraSetupModel& CameraSetupModelID, const HTuple& CameraIdx, const HString& CameraType, const HTuple& CameraPose) const;
  374. // Define type, parameters, and relative pose of a camera in a camera setup model.
  375. void SetCameraSetupCamParam(const HCameraSetupModel& CameraSetupModelID, const HTuple& CameraIdx, const char* CameraType, const HTuple& CameraPose) const;
  376. #ifdef _WIN32
  377. // Define type, parameters, and relative pose of a camera in a camera setup model.
  378. void SetCameraSetupCamParam(const HCameraSetupModel& CameraSetupModelID, const HTuple& CameraIdx, const wchar_t* CameraType, const HTuple& CameraPose) const;
  379. #endif
  380. // Set type and initial parameters of a camera in a calibration data model.
  381. void SetCalibDataCamParam(const HCalibData& CalibDataID, const HTuple& CameraIdx, const HTuple& CameraType) const;
  382. // Set type and initial parameters of a camera in a calibration data model.
  383. void SetCalibDataCamParam(const HCalibData& CalibDataID, const HTuple& CameraIdx, const HString& CameraType) const;
  384. // Set type and initial parameters of a camera in a calibration data model.
  385. void SetCalibDataCamParam(const HCalibData& CalibDataID, const HTuple& CameraIdx, const char* CameraType) const;
  386. #ifdef _WIN32
  387. // Set type and initial parameters of a camera in a calibration data model.
  388. void SetCalibDataCamParam(const HCalibData& CalibDataID, const HTuple& CameraIdx, const wchar_t* CameraType) const;
  389. #endif
  390. };
  391. }
  392. #endif