39#include <opencv2/core/mat.hpp>
40#include "api_global.h"
41#include "profiler/calibration/MultiProfilerErrorStatus.h"
42#include "profiler/calibration/ProfilerCalibrationTypes.h"
46class MultiProfilerCalibration;
99 const std::vector<cv::Mat>& minorDepths,
100 std::vector<CalibResult>& calibResults);
112 bool saveCalibFiles(
bool needSaveAll =
true,
const std::string& saveFolderName =
"")
const;
129 const ProfilerImage& majorImage,
const std::vector<ProfilerImage>& minorImages,
131 const std::optional<MultiStitchParams>& stitchParams = std::nullopt);
148 const ProfilerImage& majorImage,
const std::vector<ProfilerImage>& minorImages,
150 const std::optional<MultiStitchParams>& stitchParams = std::nullopt);
163 const std::vector<bool>& fusionFlag = {});
183 const std::vector<MinorStitchResultZParallel>& minorStitchResults,
184 const cv::Point2i& majorBias,
FusionResult& fusionResult,
185 const std::vector<bool>& fusionFlag = {});
215 bool needLoadAll =
false);
273 const std::vector<DeviceInfo>& minorDeviceInfos,
275 const std::vector<TargetPose>& targetPoses);
278 std::unique_ptr<MultiProfilerCalibration> calibrationInstance;
void setMinorDeviceInfos(const std::vector< DeviceInfo > &deviceInfos)
Initializes the configuration for the secondary laser profiler(s).
bool saveCalibFiles(bool needSaveAll=true, const std::string &saveFolderName="") const
Saves the calibration data to files in the specified path.
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-...
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...
bool saveStitchFiles(const std::string &saveFolderName="") const
Saves the stitching results to files in the specified path.
std::vector< TargetPose > getTargetPoses() const
Gets the calibration target poses. This function retrieves the spatial positions and orientations of ...
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....
void setCalibTargetSize(const TargetSize &targetSize)
Sets the dimensions of the frustums of the calibration target.
std::vector< CalibResult > getCurrentCalibResults() const
Gets the current calibration results, which can be used for stitching.
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...
DeviceInfo getMajorDeviceInfo() const
Gets the major device information. This function retrieves the information of the primary device used...
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....
TargetSize getTargetSize() const
Gets the target size. This function retrieves the size of the calibration target.
std::vector< DeviceInfo > getMinorDeviceInfos() const
Gets the minor devices' information. This function retrieves a list of information for all minor devi...
void setCalibTargetPoses(const std::vector< TargetPose > &targetPoses)
Defines the relative position of the frustums of the calibration target.
void setMajorDeviceInfo(const DeviceInfo &deviceInfo)
Initializes the configuration for the primary laser profiler.
std::string getCameraModel() const
Gets the camera model identifier. This function retrieves the model name of the profiler.
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 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...
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 saveStitchFilesForZParallel(const std::string &saveFolderName="") const
Saves the stitching results to files in the specified path when the laser profilers are arranged in t...
Defines the configuration for each laser profiler.
Stores the stitching results.
The stitching results when the laser profilers are arranged in the Wide mode (i.e....
Stores the intensity image and depth map acquired by the laser profiler.
Defines the dimensions of the frustums of the calibration target.