39#include <opencv2/core/mat.hpp>
40#include "api_global.h"
47class MultiProfilerCalibration;
56 RefineStitchParameters = 1,
57 OverlapRegionUniformSampling =
119 const std::vector<cv::Mat>& minorDepths,
120 std::vector<CalibResult>& calibResults);
132 bool saveCalibFiles(
bool needSaveAll =
true,
const std::string& saveFolderName =
"")
const;
149 const ProfilerImage& majorImage,
const std::vector<ProfilerImage>& minorImages,
151 const std::optional<MultiStitchParams>& stitchParams = std::nullopt);
168 const ProfilerImage& majorImage,
const std::vector<ProfilerImage>& minorImages,
170 const std::optional<MultiStitchParams>& stitchParams = std::nullopt);
191 const ProfilerImage& majorImage,
const std::vector<ProfilerImage>& minorImages,
192 int cloudStitchOption,
int paramRefineOption,
const std::vector<CalibResult>& calibResults,
193 bool correctRingError =
true,
int normalEstimationKnn = -1,
194 const std::optional<MultiStitchParams>& stitchParams = std::nullopt);
224 const std::vector<bool>& fusionFlag = {});
244 const std::vector<MinorStitchResultZParallel>& minorStitchResults,
245 const cv::Point2i& majorBias,
FusionResult& fusionResult,
246 const std::vector<bool>& fusionFlag = {});
276 bool needLoadAll =
false);
334 const std::vector<DeviceInfo>& minorDeviceInfos,
336 const std::vector<TargetPose>& targetPoses);
339 friend class InternalInterfaces;
340 std::unique_ptr<MultiProfilerCalibration> calibrationInstance;
#define MMIND_API_EXPORT
Definition api_global.h:48
Represents the data struct of the profile data.
Definition BatchArray.h:16
Definition MultiProfilerErrorStatus.h:7
Definition ProfilerCalibrationInterfaces.h:49
std::vector< DeviceInfo > getMinorDeviceInfos() const
Gets the minor devices' information. This function retrieves a list of information for all minor devi...
std::vector< TargetPose > getTargetPoses() const
Gets the calibration target poses. This function retrieves the spatial positions and orientations of ...
ProfilerCalibrationInterfaces(const std::string &cameraModel, const DeviceInfo &majorDeviceInfo, const std::vector< DeviceInfo > &minorDeviceInfos, const TargetSize &targetSize, const std::vector< TargetPose > &targetPoses)
Constructs a new ProfilerCalibrationInterfaces object with specified parameters. This constructor ini...
StitchParamRefineOption
Stitching parameter refinement options. This enum defines the options available for stitching paramet...
Definition ProfilerCalibrationInterfaces.h:65
bool setCalibCameraModel(const std::string &cameraModel)
Sets the model of the laser profilers used in the calibration, in the form of a string such as "Mech-...
TargetSize getTargetSize() const
Gets the target size. This function retrieves the size of the calibration target.
MultiProfilerErrorStatus imageFusionForZParallel(const ProfilerImage &majorStitchImage, const std::vector< MinorStitchResultZParallel > &minorStitchResults, const cv::Point2i &majorBias, FusionResult &fusionResult, const std::vector< bool > &fusionFlag={})
Performs fusion based on the stitching results when the laser profilers are arranged in the Wide mode...
MultiProfilerErrorStatus stitchPointCloud(const ProfilerImage &majorImage, const std::vector< ProfilerImage > &minorImages, int cloudStitchOption, int paramRefineOption, const std::vector< CalibResult > &calibResults, bool correctRingError=true, int normalEstimationKnn=-1, const std::optional< MultiStitchParams > &stitchParams=std::nullopt)
Calculates the stitching results for point clouds.
void setMinorDeviceInfos(const std::vector< DeviceInfo > &deviceInfos)
Initializes the configuration for the secondary laser profiler(s).
MultiProfilerErrorStatus calculateCalibration(const cv::Mat &majorDepth, const std::vector< cv::Mat > &minorDepths, std::vector< CalibResult > &calibResults)
Calculates the calibration results based on the depth maps acquired by the primary and secondary lase...
~ProfilerCalibrationInterfaces()
std::string getCameraModel() const
Gets the camera model identifier. This function retrieves the model name of the profiler.
MultiProfilerErrorStatus stitchImagesForZParallel(const ProfilerImage &majorImage, const std::vector< ProfilerImage > &minorImages, const std::vector< CalibResult > &calibResults, MultiStitchResultZParallel &stitchResults, const std::optional< MultiStitchParams > &stitchParams=std::nullopt)
Calculates the stitching results when the laser profilers are arranged in the Wide mode (i....
CloudStitchOption
Cloud stitching options. This enum defines the options available for stitching point clouds.
Definition ProfilerCalibrationInterfaces.h:55
MultiProfilerErrorStatus loadCalibProperties(const std::string &loadFolderName="", bool needLoadAll=false)
Loads the calibration data from the files in the specified path, typically used before stitching star...
bool saveCalibFiles(bool needSaveAll=true, const std::string &saveFolderName="") const
Saves the calibration data to files in the specified path.
MultiProfilerErrorStatus getStitchedPointCloud(ProfileBatch::TexturedPointCloud &texturedPointCloud) const
Retrieves the stitched point cloud based on the stitching results, including texture information.
MultiProfilerErrorStatus stitchImages(const ProfilerImage &majorImage, const std::vector< ProfilerImage > &minorImages, const std::vector< CalibResult > &calibResults, MultiStitchResult &stitchResults, const std::optional< MultiStitchParams > &stitchParams=std::nullopt)
Calculates the stitching results when the laser profilers are arranged in the Angle mode (i....
bool saveStitchFiles(const std::string &saveFolderName="") const
Saves the stitching results to files in the specified path.
MultiProfilerErrorStatus getStitchedPointCloud(ProfileBatch::UntexturedPointCloud &pointCloud) const
Retrieves the stitched point cloud based on the stitching results.
MultiProfilerErrorStatus imageFusionForZParallel(FusionResult &fusionResult, const std::vector< bool > &fusionFlag={})
Performs fusion based on the stitching results when the laser profilers are arranged in the Wide mode...
ProfilerCalibrationInterfaces()
void setMajorDeviceInfo(const DeviceInfo &deviceInfo)
Initializes the configuration for the primary laser profiler.
void setCalibTargetSize(const TargetSize &targetSize)
Sets the dimensions of the frustums of the calibration target.
DeviceInfo getMajorDeviceInfo() const
Gets the major device information. This function retrieves the information of the primary device used...
void setCalibTargetPoses(const std::vector< TargetPose > &targetPoses)
Defines the relative position of the frustums of the calibration target.
bool saveStitchFilesForZParallel(const std::string &saveFolderName="") const
Saves the stitching results to files in the specified path when the laser profilers are arranged in t...
std::vector< CalibResult > getCurrentCalibResults() const
Gets the current calibration results, which can be used for stitching.
Defines the configuration for each laser profiler.
Definition ProfilerCalibrationTypes.h:74
The fusion results.
Definition ProfilerCalibrationTypes.h:203
Stores the stitching results.
Definition ProfilerCalibrationTypes.h:171
The stitching results when the laser profilers are arranged in the Wide mode (i.e....
Definition ProfilerCalibrationTypes.h:193
Stores the intensity image and depth map acquired by the laser profiler.
Definition ProfilerCalibrationTypes.h:33
Defines the dimensions of the frustums of the calibration target.
Definition ProfilerCalibrationTypes.h:42