mirror of
https://github.com/introlab/rtabmap.git
synced 2026-10-06 01:57:45 +08:00
CI: use ubuntu arm runners instead of QEMU (#1771)
* CI: use ubuntu arm runners instead of QEMU * removed focal deps docker image ci * run tests in docker ci * revert temporary test * trigger ci jobs with modified files * ldconfig * arm64 ldconfig order * No response filtering here: cv::goodFeaturesToTrack() already applies GFTT/QualityLevel, relative to the best corner's measure. Re-applying it as an absolute floor on KeyPoint::response double-filtered (~86% of keypoints ropped on OpenCV 4.5), and dropped *every* keypoint on OpenCV < 4.5, whose GFTTDetector leaves response at 0. * fixing ExtractXYZCorrespondencesRANSAC ci error * increased windows timeout (probably caused by gftt fix now extracting more features)
This commit is contained in:
@@ -427,6 +427,51 @@ public:
|
||||
*/
|
||||
float computeDisparity(unsigned short depth) const; // mm
|
||||
|
||||
/**
|
||||
* @brief Reprojects a 3D point of the left camera frame into both image planes (floating-point).
|
||||
*
|
||||
* The point is given in the rectified left camera frame (/camera_link), the same frame used
|
||||
* by CameraModel::reproject() of left(). The baseline is taken from the Tx of the rectified
|
||||
* projection matrices, so the horizontal shift between uLeft and uRight is the disparity of
|
||||
* that point. On a rectified stereo pair the rows are aligned, thus vRight equals vLeft.
|
||||
*
|
||||
* @note Unlike this function, CameraModel::reproject() ignores Tx, because a Tx set on a
|
||||
* single camera model is also used to tag a left camera having stereo observations
|
||||
* (see the stereo edges built by the BA optimizers).
|
||||
*
|
||||
* @param x X coordinate in the left camera space.
|
||||
* @param y Y coordinate in the left camera space.
|
||||
* @param z Z coordinate in the left camera space (must be non-zero).
|
||||
* @param[out] uLeft Output horizontal image coordinate in the left image (float).
|
||||
* @param[out] vLeft Output vertical image coordinate in the left image (float).
|
||||
* @param[out] uRight Output horizontal image coordinate in the right image (float).
|
||||
* @param[out] vRight Output vertical image coordinate in the right image (float).
|
||||
*
|
||||
* @pre `z != 0`
|
||||
*
|
||||
* @see CameraModel::reproject(), reproject(int&, int&, int&, int&)
|
||||
*/
|
||||
void reproject(float x, float y, float z, float & uLeft, float & vLeft, float & uRight, float & vRight) const;
|
||||
|
||||
/**
|
||||
* @brief Reprojects a 3D point of the left camera frame into both image planes (rounded to int).
|
||||
*
|
||||
* This version of `reproject()` returns integer pixel indices, computed from the 3D position.
|
||||
*
|
||||
* @param x X coordinate in the left camera space.
|
||||
* @param y Y coordinate in the left camera space.
|
||||
* @param z Z coordinate in the left camera space (must be non-zero).
|
||||
* @param[out] uLeft Output horizontal image coordinate in the left image (integer pixel).
|
||||
* @param[out] vLeft Output vertical image coordinate in the left image (integer pixel).
|
||||
* @param[out] uRight Output horizontal image coordinate in the right image (integer pixel).
|
||||
* @param[out] vRight Output vertical image coordinate in the right image (integer pixel).
|
||||
*
|
||||
* @pre `z != 0`
|
||||
*
|
||||
* @see CameraModel::reproject(), reproject(float&, float&, float&, float&)
|
||||
*/
|
||||
void reproject(float x, float y, float z, int & uLeft, int & vLeft, int & uRight, int & vRight) const;
|
||||
|
||||
const cv::Mat & R() const {return R_;} ///< Stereo extrinsic rotation matrix.
|
||||
const cv::Mat & T() const {return T_;} ///< Stereo extrinsic translation vector.
|
||||
const cv::Mat & E() const {return E_;} ///< Essential matrix.
|
||||
|
||||
Reference in New Issue
Block a user