Mech-Eye API 2.6.0
API reference documentation for Mech-Eye 3D Laser Profiler
Loading...
Searching...
No Matches
mmind::eye::ProfilerCalibrationInterfaces Class Reference

Public Types

enum class  CloudStitchOption { RefineStitchParameters = 1 , OverlapRegionUniformSampling }
 Cloud stitching options. This enum defines the options available for stitching point clouds. More...
enum class  StitchParamRefineOption { RefineT = 1 }
 Stitching parameter refinement options. This enum defines the options available for stitching parameter refinement. More...
using CorrectedResult = TransformedImageInfo

Public Member Functions

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-Eye LNX-8030".
void setMajorDeviceInfo (const DeviceInfo &deviceInfo)
 Initializes the configuration for the primary laser profiler.
void setMinorDeviceInfos (const std::vector< DeviceInfo > &deviceInfos)
 Initializes the configuration for the secondary laser profiler(s).
void setCalibTargetSize (const TargetSize &targetSize)
 Sets the dimensions of the frustums of the calibration target.
void setCalibTargetPoses (const std::vector< TargetPose > &targetPoses)
 Defines the relative position of the frustums of the calibration target.
MultiProfilerErrorStatus calculateCalibration (const cv::Mat &majorDepth, const std::vector< cv::Mat > &minorDepths, std::vector< CalibResult > &calibResults, bool unifiedMoveDirection=true, const std::optional< cv::Point3f > &majorCameraMoveDirVec=std::nullopt)
 Calculates the calibration results based on the depth maps acquired by the primary and secondary laser profilers.
MultiProfilerErrorStatus calibrateSingleProfilerMoveDirection (const cv::Mat &firstDepth, const cv::Mat &secondDepth, ProfilerMovementAxis moveAxis, MoveDirCalibResult &calibResult, const std::optional< cv::Point3f > &knownYAxisMoveDir=std::nullopt)
 Calibrates the scanning movement direction of a single profiler based two depth maps acquired along a defined axis.
MultiProfilerErrorStatus calibrateSingleProfilerWidthExpansion (const cv::Mat &firstDepth, const cv::Mat &secondDepth, const std::vector< RefPositionBias > &refPositionBiases, std::vector< StitchParams > &results, const std::optional< cv::Point3f > &knownYAxisMoveDir=std::nullopt)
 Performs width-expansion calibration for a single profiler based on two depth maps captured at different lateral reference positions.
ProfilerHandEyeErrorStatus calibrateTrussRobot (const std::vector< TrussRobotCalibMatchedPoint > &matchedPoints, const TrussRobotCalibConfig &config, TrussRobotCalibResult &calibResult)
 Calculates the calibration results based on the depth maps acquired by the primary and secondary laser profilers.
ProfilerHandEyeErrorStatus transformPointFromProfilerCoord2TrussRobotCoord (const cv::Point3f &profilerPoint, const cv::Point3f &profilerCapturePosition, const TrussRobotCalibResult &calibResult, cv::Point3f &dstPoint, const std::optional< cv::Point3f > &tcpOffSet=std::nullopt)
 Obtain the calibration result function.
MultiProfilerErrorStatus correctProfilerMoveDir (const cv::Point3f &moveDirVec, const ProfilerImage &srcImage, CorrectedResult &result, const MoveDirCorrectionOptions &options={})
 Correct the profiler output based on its movement direction.
MultiProfilerErrorStatus stitchProfilerWidthExpansion (const ImageInfo &majorImageInfo, const std::vector< ImageInfo > &minorImageInfos, const WidthExpansionType &type, FusionResult &results, const std::vector< StitchParams > &multiParams, bool fusionFlag)
 Perform width-expansion stitching for a single profiler (S/Z-type scanning).
MultiProfilerErrorStatus stitchProfilerWidthExpansion (const ImageInfo &majorImageInfo, const std::vector< ImageInfo > &minorImageInfos, const WidthExpansionType &type, FusionResult &results, const std::vector< StitchParams > &multiParams, bool fusionFlag, const std::vector< bool > &moveConsistentFlags)
 Perform width-expansion stitching for a single profiler (S/Z-type scanning).
bool saveCalibFiles (bool needSaveAll=true, const std::string &saveFolderName="") const
 Saves the calibration data to files in the specified path.
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.e., in the opposite direction or around a circle).
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.e., side-by-side or in the reversed direction).
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.
MultiProfilerErrorStatus getStitchedPointCloud (ProfileBatch::UntexturedPointCloud &pointCloud) const
 Retrieves the stitched point cloud based on the stitching results.
MultiProfilerErrorStatus getStitchedPointCloud (ProfileBatch::TexturedPointCloud &texturedPointCloud) const
 Retrieves the stitched point cloud based on the stitching results, including texture information.
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 (i.e., side-by-side or in the reversed direction).
MultiProfilerErrorStatus imageFusionForZParallel (const MultiStitchResultZParallel &stitchResult, 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 (i.e., side-by-side or in the reversed direction).
bool saveStitchFiles (const std::string &saveFolderName="") const
 Saves the stitching results to files in the specified path.
bool saveStitchFilesForZParallel (const std::string &saveFolderName="") const
 Saves the stitching results to files in the specified path when the laser profilers are arranged in the Wide mode (i.e., side-by-side or in the reversed direction).
MultiProfilerErrorStatus loadCalibProperties (const std::string &loadFolderName="", bool needLoadAll=false)
 Loads the calibration data from the files in the specified path, typically used before stitching starts.
std::vector< CalibResultgetCurrentCalibResults () const
 Gets the current calibration results, which can be used for stitching.
DeviceInfo getMajorDeviceInfo () const
 Gets the major device information. This function retrieves the information of the primary device used in the calibration or processing pipeline.
TargetSize getTargetSize () const
 Gets the target size. This function retrieves the size of the calibration target.
std::string getCameraModel () const
 Gets the camera model identifier. This function retrieves the model name of the profiler.
std::vector< DeviceInfogetMinorDeviceInfos () const
 Gets the minor devices' information. This function retrieves a list of information for all minor devices in the system.
std::vector< TargetPosegetTargetPoses () const
 Gets the calibration target poses. This function retrieves the spatial positions and orientations of the calibration target captured during the calibration process.
 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 initializes the calibration interface with the provided camera model, device information, target size, and target poses.
 ProfilerCalibrationInterfaces (const std::string &cameraModel, const DeviceInfo &profilerDeviceInfo, const TargetSize &targetSize, const std::vector< TargetPose > &targetPoses)
 Constructs a new ProfilerCalibrationInterfaces object with specified parameters. This constructor initializes the calibration interface with the provided camera model, device information, target size, and target poses.

Friends

class InternalInterfaces

Detailed Description

Definition at line 49 of file ProfilerCalibrationInterfaces.h.

Member Typedef Documentation

◆ CorrectedResult

using mmind::eye::ProfilerCalibrationInterfaces::CorrectedResult = TransformedImageInfo

Definition at line 70 of file ProfilerCalibrationInterfaces.h.

Member Enumeration Documentation

◆ CloudStitchOption

Cloud stitching options. This enum defines the options available for stitching point clouds.

Enumerator
RefineStitchParameters 

Refine the stitching parameters during cloud stitching.

OverlapRegionUniformSampling 

Apply uniform sampling to the overlap region during stitching.

Definition at line 56 of file ProfilerCalibrationInterfaces.h.

◆ StitchParamRefineOption

Stitching parameter refinement options. This enum defines the options available for stitching parameter refinement.

Enumerator
RefineT 

Refine the translation parameters.

Definition at line 66 of file ProfilerCalibrationInterfaces.h.

Constructor & Destructor Documentation

◆ ProfilerCalibrationInterfaces() [1/2]

mmind::eye::ProfilerCalibrationInterfaces::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 initializes the calibration interface with the provided camera model, device information, target size, and target poses.

Parameters
[in]cameraModelA string representing the camera model (e.g., "Mech-Eye LNX-8030").
[in]majorDeviceInfoA structure containing the configuration parameters of the major device.
[in]minorDeviceInfosA vector of DeviceInfo structures containing configuration data for each minor device.
[in]targetSizeA structure defining the size of the calibration target.
[in]targetPosesA vector of TargetPose structures describing the positions and orientations of the calibration targets.

◆ ProfilerCalibrationInterfaces() [2/2]

mmind::eye::ProfilerCalibrationInterfaces::ProfilerCalibrationInterfaces ( const std::string & cameraModel,
const DeviceInfo & profilerDeviceInfo,
const TargetSize & targetSize,
const std::vector< TargetPose > & targetPoses )

Constructs a new ProfilerCalibrationInterfaces object with specified parameters. This constructor initializes the calibration interface with the provided camera model, device information, target size, and target poses.

Parameters
[in]cameraModelA string representing the camera model (e.g., "Mech-Eye LNX-8030").
[in]profilerDeviceInfoA structure containing the configuration parameters of the major device.
[in]targetSizeA structure defining the size of the calibration target.
[in]targetPosesA vector of TargetPose structures describing the positions and orientations of the calibration targets.

Member Function Documentation

◆ calculateCalibration()

MultiProfilerErrorStatus mmind::eye::ProfilerCalibrationInterfaces::calculateCalibration ( const cv::Mat & majorDepth,
const std::vector< cv::Mat > & minorDepths,
std::vector< CalibResult > & calibResults,
bool unifiedMoveDirection = true,
const std::optional< cv::Point3f > & majorCameraMoveDirVec = std::nullopt )

Calculates the calibration results based on the depth maps acquired by the primary and secondary laser profilers.

Parameters
[in]majorDepthDepth map acquired by the primary laser profiler.
[in]minorDepthsDepth map(s) acquired by secondary laser profiler(s).
[in]unifiedMoveDirectionWhether to use a unified motion direction vector for both the primary and secondary profilers.
[in]majorCameraMoveDirVecOptional predefined motion direction vector of the primary profiler. If not provided, the direction will be estimated from the data.
[out]calibResultsThe calibration results and errors. See CalibResult for details.
Returns
See MultiProfilerErrorStatus for details.

◆ calibrateSingleProfilerMoveDirection()

MultiProfilerErrorStatus mmind::eye::ProfilerCalibrationInterfaces::calibrateSingleProfilerMoveDirection ( const cv::Mat & firstDepth,
const cv::Mat & secondDepth,
ProfilerMovementAxis moveAxis,
MoveDirCalibResult & calibResult,
const std::optional< cv::Point3f > & knownYAxisMoveDir = std::nullopt )

Calibrates the scanning movement direction of a single profiler based two depth maps acquired along a defined axis.

Parameters
[in]firstDepthDepth map from the first scan.
[in]secondDepthDepth map from the second scan along the same motion axis.
[in]moveAxisAxis along which movement calibration is to be performed. See ProfilerMovementAxis.
[in]knownYAxisMoveDirOptional pre-calibrated Y-axis movement vector. If provided, the algorithm will use it as prior information.
[out]calibResultsThe resulting movement-direction calibration output. See MoveDirCalibResult for details.
Returns
See MultiProfilerErrorStatus for details.

◆ calibrateSingleProfilerWidthExpansion()

MultiProfilerErrorStatus mmind::eye::ProfilerCalibrationInterfaces::calibrateSingleProfilerWidthExpansion ( const cv::Mat & firstDepth,
const cv::Mat & secondDepth,
const std::vector< RefPositionBias > & refPositionBiases,
std::vector< StitchParams > & results,
const std::optional< cv::Point3f > & knownYAxisMoveDir = std::nullopt )

Performs width-expansion calibration for a single profiler based on two depth maps captured at different lateral reference positions.

Parameters
[in]firstDepthDepth map from the initial scan.
[in]secondDepthDepth map from the secondary scan with lateral offset.
[in]refPositionBiasesOffsets between the reference positions of the first and second scans. See RefPositionBias for details.
[in]knownYAxisMoveDirOptional pre-calibrated Y-axis movement direction vector.
[out]resultsEstimated stitching parameters and error metrics. See StitchParams.
Returns
See MultiProfilerErrorStatus for details.

◆ calibrateTrussRobot()

ProfilerHandEyeErrorStatus mmind::eye::ProfilerCalibrationInterfaces::calibrateTrussRobot ( const std::vector< TrussRobotCalibMatchedPoint > & matchedPoints,
const TrussRobotCalibConfig & config,
TrussRobotCalibResult & calibResult )

Calculates the calibration results based on the depth maps acquired by the primary and secondary laser profilers.

Parameters
[in]matchedPointsThe number of matching point groups must be greater than or equal to 3, and they should not be collinear.
[in]profilerCalibPositionWhen collecting calibration data, the machine coordinate of the camera's initial position.
[in]TrussRobotCalibConfigConfiguration parameters for truss robot calibration. See TrussRobotCalibConfig for details.
[out]calibResultThe calibration results . See CalibResult for details.
Returns
See MultiProfilerErrorStatus for details.

◆ correctProfilerMoveDir()

MultiProfilerErrorStatus mmind::eye::ProfilerCalibrationInterfaces::correctProfilerMoveDir ( const cv::Point3f & moveDirVec,
const ProfilerImage & srcImage,
CorrectedResult & result,
const MoveDirCorrectionOptions & options = {} )

Correct the profiler output based on its movement direction.

Parameters
[in]moveDirVecUnit movement direction vector in the camera coordinate system.
[in]srcImageOriginal profiler image (depth and intensity).
[out]resultCorrected output, including depth map, intensity map, and pixel bias.
[in]optionsOptional custom output size and resolution settings.
Returns
See MultiProfilerErrorStatus for details.

◆ getCameraModel()

std::string mmind::eye::ProfilerCalibrationInterfaces::getCameraModel ( ) const

Gets the camera model identifier. This function retrieves the model name of the profiler.

Returns
Returns a string containing the camera model name.

◆ getCurrentCalibResults()

std::vector< CalibResult > mmind::eye::ProfilerCalibrationInterfaces::getCurrentCalibResults ( ) const

Gets the current calibration results, which can be used for stitching.

Returns
Returns the calibration results and errors. See CalibResult for details.

◆ getMajorDeviceInfo()

DeviceInfo mmind::eye::ProfilerCalibrationInterfaces::getMajorDeviceInfo ( ) const

Gets the major device information. This function retrieves the information of the primary device used in the calibration or processing pipeline.

Returns
Returns a DeviceInfo object containing the details of the major device.

◆ getMinorDeviceInfos()

std::vector< DeviceInfo > mmind::eye::ProfilerCalibrationInterfaces::getMinorDeviceInfos ( ) const

Gets the minor devices' information. This function retrieves a list of information for all minor devices in the system.

Returns
Returns a vector of DeviceInfo containing details of the minor devices.

◆ getStitchedPointCloud() [1/2]

MultiProfilerErrorStatus mmind::eye::ProfilerCalibrationInterfaces::getStitchedPointCloud ( ProfileBatch::TexturedPointCloud & texturedPointCloud) const

Retrieves the stitched point cloud based on the stitching results, including texture information.

Parameters
texturedPointCloud[out] The textured point cloud.
Returns
See MultiProfilerErrorStatus for details.

◆ getStitchedPointCloud() [2/2]

MultiProfilerErrorStatus mmind::eye::ProfilerCalibrationInterfaces::getStitchedPointCloud ( ProfileBatch::UntexturedPointCloud & pointCloud) const

Retrieves the stitched point cloud based on the stitching results.

Parameters
pointCloud[out] The untextured point cloud.
Returns
See MultiProfilerErrorStatus for details.

◆ getTargetPoses()

std::vector< TargetPose > mmind::eye::ProfilerCalibrationInterfaces::getTargetPoses ( ) const

Gets the calibration target poses. This function retrieves the spatial positions and orientations of the calibration target captured during the calibration process.

Returns
Returns a vector of TargetPose containing the captured pose data.

◆ getTargetSize()

TargetSize mmind::eye::ProfilerCalibrationInterfaces::getTargetSize ( ) const

Gets the target size. This function retrieves the size of the calibration target.

Returns
Returns a TargetSize object representing the size of the target.

◆ imageFusionForZParallel() [1/2]

MultiProfilerErrorStatus mmind::eye::ProfilerCalibrationInterfaces::imageFusionForZParallel ( const MultiStitchResultZParallel & stitchResult,
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 (i.e., side-by-side or in the reversed direction).

Parameters
[in]stitchResultThe stitching results used for fusion under Z-parallel configuration. It contains:
  • majorStitchImage: The stitched intensity image and depth map of the (virtual) major profiler.
  • minorStitchResults: The stitched intensity image, depth map, and bias information of the minor profiler(s), all converted into the coordinate system of the (virtual) major profiler.
  • majorPixelBiasToCamCoord: The pixel-wise bias of the (virtual) major profiler’s depth image origin (0,0) relative to the real primary profiler’s camera coordinate system. The bias is represented in pixels and can be converted to physical units using the image resolution. The origin of this transformation is the point cloud origin of the real primary profiler.
[in]majorBiasThe pixel-wise bias of the (virtual) major profiler relative to the real primary profiler used as the reference in fusion. This parameter is typically:
  • {0, 0} when the virtual major profiler is the real primary profiler;
  • retrieved from stitching results when the virtual major profiler is a secondary profiler.
[out]fusionResultThe fused intensity image and depth map, and the coordinates of the upper-left pixels of the fused intensity image and depth map in the real primary profiler’s camera coordinate system.
[in]fusionFlagOptional. Specifies whether to perform fusion for each minor profiler. If left empty, fusion will be performed for all minor profilers.
Returns
See MultiProfilerErrorStatus for details.

◆ imageFusionForZParallel() [2/2]

MultiProfilerErrorStatus mmind::eye::ProfilerCalibrationInterfaces::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 (i.e., side-by-side or in the reversed direction).

Parameters
[out]fusionResultThe fused intensity image and depth map, and the coordinates of the upper-left pixels of the intensity image and depth map acquired by the primary laser profiler.
[in]fusionFlagOptional. Specifies whether to perform fusion. If left empty, fusion will be performed.
Returns
See MultiProfilerErrorStatus for details.

◆ loadCalibProperties()

MultiProfilerErrorStatus mmind::eye::ProfilerCalibrationInterfaces::loadCalibProperties ( const std::string & loadFolderName = "",
bool needLoadAll = false )

Loads the calibration data from the files in the specified path, typically used before stitching starts.

Parameters
[in]loadFolderNameThe path of the files storing the calibration data to be loaded.
[in]needLoadAllSpecifies whether all data related to the calibration should be loaded. When set to "false", only the calibration configurations, results, and errors will be loaded. When set to "true" (the default value), the intensity images and depth maps acquired by the laser profilers will also be loaded.
Returns
See MultiProfilerErrorStatus for details.

◆ saveCalibFiles()

bool mmind::eye::ProfilerCalibrationInterfaces::saveCalibFiles ( bool needSaveAll = true,
const std::string & saveFolderName = "" ) const

Saves the calibration data to files in the specified path.

Parameters
[in]needSaveAllSpecifies whether all data related to the calibration should be saved. When set to "false", only the calibration configurations, results, and errors will be saved. When set to "true" (the default value), the intensity images and depth maps acquired by the laser profilers will also be saved.
[in]saveFolderNameThe path where the files should be saved. If left empty, the default path will be used.
Returns
Returns true on success and false on failure.

◆ saveStitchFiles()

bool mmind::eye::ProfilerCalibrationInterfaces::saveStitchFiles ( const std::string & saveFolderName = "") const

Saves the stitching results to files in the specified path.

Parameters
[in]saveFolderNameThe path where the files should be saved. If left empty, the default path will be used.
Returns
Returns true on success and false on failure.

◆ saveStitchFilesForZParallel()

bool mmind::eye::ProfilerCalibrationInterfaces::saveStitchFilesForZParallel ( const std::string & saveFolderName = "") const

Saves the stitching results to files in the specified path when the laser profilers are arranged in the Wide mode (i.e., side-by-side or in the reversed direction).

Parameters
[in]saveFolderNameThe path where the files should be saved. If left empty, the default path will be used.
Returns
Returns true on success and false on failure.

◆ setCalibCameraModel()

bool mmind::eye::ProfilerCalibrationInterfaces::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-Eye LNX-8030".

Parameters
[in]cameraModelThe laser profiler model.
Returns
Returns true on success and false on failure.

◆ setCalibTargetPoses()

void mmind::eye::ProfilerCalibrationInterfaces::setCalibTargetPoses ( const std::vector< TargetPose > & targetPoses)

Defines the relative position of the frustums of the calibration target.

Parameters
[in]targetPosesThe position and orientation of the frustums of the calibration target. See TargetPose for details.

◆ setCalibTargetSize()

void mmind::eye::ProfilerCalibrationInterfaces::setCalibTargetSize ( const TargetSize & targetSize)

Sets the dimensions of the frustums of the calibration target.

Parameters
[in]targetSizeThe dimensions of the frustums, including the upper base length, lower base length, and height. See TargetSize for details.

◆ setMajorDeviceInfo()

void mmind::eye::ProfilerCalibrationInterfaces::setMajorDeviceInfo ( const DeviceInfo & deviceInfo)

Initializes the configuration for the primary laser profiler.

Parameters
[in]deviceInfoThe configuration for the primary laser profiler. See DeviceInfo for details.

◆ setMinorDeviceInfos()

void mmind::eye::ProfilerCalibrationInterfaces::setMinorDeviceInfos ( const std::vector< DeviceInfo > & deviceInfos)

Initializes the configuration for the secondary laser profiler(s).

Parameters
[in]deviceInfosThe configuration for each secondary laser profiler. See DeviceInfo for details.

◆ stitchImages()

MultiProfilerErrorStatus mmind::eye::ProfilerCalibrationInterfaces::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.e., in the opposite direction or around a circle).

Parameters
[in]majorImageIntensity image and depth map from the primary laser profiler.
[in]minorImagesIntensity image(s) and depth map(s) from the secondary laser profiler(s).
[in]calibResultsThe calibration results and errors used for stitching, which can be either calculated or loaded from files. See CalibResult for details.
[out]stitchResultsThe stitched intensity image and depth map, and transformation result file.
[in]stitchParamsOptional. If left empty, default or previously set calibration parameters will be used for stitching.
Returns
See MultiProfilerErrorStatus for details.

◆ stitchImagesForZParallel()

MultiProfilerErrorStatus mmind::eye::ProfilerCalibrationInterfaces::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.e., side-by-side or in the reversed direction).

Parameters
[in]majorImageIntensity image and depth map from the primary laser profiler.
[in]minorImagesIntensity image(s) and depth map(s) from the secondary laser profiler(s).
[in]calibResultsThe calibration results and errors used for stitching, which can be either calculated or loaded from files. See CalibResult for details.
[out]stitchResultsThe stitched intensity image and depth map and transformation result file.
[in]stitchParamsOptional. If left empty, default or previously set calibration parameters will be used for stitching.
Returns
See MultiProfilerErrorStatus for details.

◆ stitchPointCloud()

MultiProfilerErrorStatus mmind::eye::ProfilerCalibrationInterfaces::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.

Parameters
[in]majorImageIntensity image and depth map from the primary laser profiler.
[in]minorImagesIntensity image(s) and depth map(s) from the secondary laser profiler(s).
[in]cloudStitchOptionOptions for cloud stitching.
[in]paramRefineOptionOptions for parameter refinement.
[in]calibResultsThe calibration results and errors used for stitching, which can be either calculated or loaded from files. See CalibResult for details.
[in]correctRingErrorWhen enabled, the system applies loop closure correction on top of the initial registration, mitigating accumulated errors caused by topological loops to enhance overall fusion quality.
[in]normalEstimationKnnNumber of nearest neighbors used for normal estimation. -1 means using the default number of neighbors suitable for most point clouds.
[in]stitchParamsOptional. If left empty, default or previously set calibration parameters will be used for stitching.
Returns
See MultiProfilerErrorStatus for details.

◆ stitchProfilerWidthExpansion() [1/2]

MultiProfilerErrorStatus mmind::eye::ProfilerCalibrationInterfaces::stitchProfilerWidthExpansion ( const ImageInfo & majorImageInfo,
const std::vector< ImageInfo > & minorImageInfos,
const WidthExpansionType & type,
FusionResult & results,
const std::vector< StitchParams > & multiParams,
bool fusionFlag )

Perform width-expansion stitching for a single profiler (S/Z-type scanning).

Parameters
[in]majorImageInfoImage data from the primary scan.
[in]minorImageInfosImage data from secondary scan segments.
[in]typeWidth-expansion scanning mode.
[out]resultsOutput fused image and stitching metadata.
[in]multiParamsCalibration parameters and error metrics. See StitchParams.
[in]fusionFlagWhether to merge the overlapping regions between scans.
Returns
See MultiProfilerErrorStatus for details.

◆ stitchProfilerWidthExpansion() [2/2]

MultiProfilerErrorStatus mmind::eye::ProfilerCalibrationInterfaces::stitchProfilerWidthExpansion ( const ImageInfo & majorImageInfo,
const std::vector< ImageInfo > & minorImageInfos,
const WidthExpansionType & type,
FusionResult & results,
const std::vector< StitchParams > & multiParams,
bool fusionFlag,
const std::vector< bool > & moveConsistentFlags )

Perform width-expansion stitching for a single profiler (S/Z-type scanning).

Parameters
[in]majorImageInfoImage data from the primary scan.
[in]minorImageInfosImage data from secondary scan segments.
[in]typeWidth-expansion scanning mode.
[out]resultsOutput fused image and stitching metadata.
[in]multiParamsCalibration parameters and error metrics. See StitchParams.
[in]fusionFlagWhether to merge overlapping regions between scans.
[in]moveConsistentFlagsFlags indicating whether each secondary scan shares the same movement direction as the primary scan.
Returns
See MultiProfilerErrorStatus for details.

◆ transformPointFromProfilerCoord2TrussRobotCoord()

ProfilerHandEyeErrorStatus mmind::eye::ProfilerCalibrationInterfaces::transformPointFromProfilerCoord2TrussRobotCoord ( const cv::Point3f & profilerPoint,
const cv::Point3f & profilerCapturePosition,
const TrussRobotCalibResult & calibResult,
cv::Point3f & dstPoint,
const std::optional< cv::Point3f > & tcpOffSet = std::nullopt )

Obtain the calibration result function.

Parameters
[in]profilerPointThe camera coordinates of the feature points to be transformed.
[in]profilerCurrentPositionThe machine coordinate of the camera's initial position during measurement.
[in]calibResultThe calibration result obtained by the function "getResult()".
[out]dstPointProfiler Point to TrussRobot Point.
[in]tcpOffSetOptional. Set the offset between the current TCP and the TCP used during calibration.
Returns
After the transformation, the machine coordinates of the feature points.

◆ InternalInterfaces

friend class InternalInterfaces
friend

Definition at line 490 of file ProfilerCalibrationInterfaces.h.


The documentation for this class was generated from the following file: