GripPointCorrection::OffsetMap

(no description)

Member Functions

cv::Mat getImage() const
bool loadImage()

== Member Variables

imagePath

std::filesystem::path JSON Type: string +Requirement: Must point to a valid 8-bit calibration image. Grayscale, single channel image is recommended. +Note: For color image, it will be converted to grayscale. The image contains offset values for points at distance zDistance.

zDistance

float, default: \{0.5F\} JSON Type: float +Requirement: Must be greater than zero. Calibration depth of the image.

maxOffset

float, default: \{0.002F\} JSON Type: float +Requirement: Must be greater than minCalibrationDistance. The distance the maximum image intensity (e.g. 255) corresponds to.

minOffset

float, default: \{0.000F\} JSON Type: float +Requirement: Must be less than minCalibrationDistance. The distance the minimum image intensity (e.g. 0) corresponds to.

decayDistance

float, default: \{0.1F\} JSON Type: float +Requirement: Must be larger than zero. This calibration layer affects all points between distance of [zDistance-decayDistance, zDistance+decayDistance] to zDistance. The value decays linearly. Note: for both decay direction, same signess of offset will be applied. i.e. zDistance = 0.5, maxOffset=0.3, minOffset=0.0, decayDistance=0.2 for x correction, pixel value =127 -→ zDistance@0.6, grippoint.x=1.0 -→ correctionValue = max(0, abs(\{gripPoint.z\}-{zDistance})/{decayDistance}) * (minOffset + {maxOffset-minOffset}*({pixelValueInCorrectionImage}/255) After correction It becomes \{original gripPoint.x\} + {correctionValue} -→ 0.5 + (0.6-0.5)/0.2 * (0.0 + (0.3-0.0) * (127/255)) → final value 0.8990196078431373