OpenCV:双目标定函数

2025-11-07 22:01:46

1、stereoCalibrate:双目标定函数

格式:

double stereoCalibrate(InputArrayOfArrays objectPoints, //世界坐标系

InputArrayOfArrays imagePoints1, //左图像点

InputArrayOfArrays imagePoints2, //右图像点

InputOutputArray cameraMatrix1,

InputOutputArray distCoeffs1,

InputOutputArray cameraMatrix2,

InputOutputArray distCoeffs2,

Size imageSize,

OutputArray R, //旋转

OutputArray T, //平移

OutputArray E, //本征矩阵

OutputArray F, //基础矩阵

TermCriteria criteria =TermCriteria(TermCriteria::COUNT+

TermCriteria::EPS, 30, 1e-6), int flags=CALIB_FIX_INTRINSIC )

功能:

双目摄像机标定,计算了两个摄像头进行立体像对之间的转换关系,根据左右相机的参数矩阵,生成两个相机之间的关系矩阵,本征矩阵和基础矩阵;

OpenCV:双目标定函数

2、undistortPoints:图像矫正函数,由畸变坐标算出标准坐标;

格式:

void undistortPoints(InputArray src, //畸变图像点

OutputArray dst, //标准图像点

InputArray cameraMatrix, //相机内参

InputArray distCoeffs,//畸变系数

InputArray R=noArray(), //旋转矩阵,为0时恒等变换

InputArray P=noArray())//矫正后相机内参数

功能:

由畸变坐标点计算出矫正后标准的坐标点,即图像校正;

OpenCV:双目标定函数

3、computeCorrespondEpilines:计算此图像中的点在另一幅图像中对应的外极线;

格式:

void computeCorrespondEpilines(InputArray points,//输入点

 int whichImage, //图像数

InputArray F, //基础矩阵

OutputArray lines)// 输出在其他图像对应点极线向量 。每条线 ax + by + c=0;

OpenCV:双目标定函数

4、平均重投影误差average reprojection err:

公式:

平均重投影误差=每个像素点误差之和/所有像素点数;

OpenCV:双目标定函数

5、stereoRectify:双目校正

格式:

void stereoRectify(InputArray cameraMatrix1,

InputArray distCoeffs1,

InputArray cameraMatrix2,

InputArray distCoeffs2,

Size imageSize,

InputArray R,

InputArray T,

OutputArray R1,

OutputArray R2,

OutputArray P1,

OutputArray P2,

OutputArray Q,

int flags=CALIB_ZERO_DISPARITY, double alpha=-1, Size newImageSize=Size(), Rect* validPixROI1=0, Rect* validPixROI2=0 )

OpenCV:双目标定函数

6、findFundamentalMat:由两幅图像中对应点计算出基本矩阵

格式:

Mat findFundamentalMat(InputArray points1,

InputArray points2,

int method=FM_RANSAC,            

double param1=3.,

double param2=0.99,

OutputArray mask=noArray() )

OpenCV:双目标定函数

7、stereoRectifyUncalibrated:单应性矩阵函数,对未标定过的摄像机计算校正变换

格式:

bool stereoRectifyUncalibrated(InputArray points1, //左图像点

InputArray points2, //右图像点

InputArray F, //基础矩阵

Size imgSize,//图像尺寸

OutputArray H1, //输出第一幅图像矫正后的单应性矩阵

OutputArray H2, //输出第二幅图像矫正后的单应性矩阵

double threshold=5 )//可选的阈值用于滤除异常点

说明:

函数在不知道摄像头的固有参数和它们在空间的相对位置计算校正变换,阐述了“未标定”后缀。单应矩阵H1和H2构成了平面的透视变换。

OpenCV:双目标定函数

8、initUndistortRectifyMap:计算摄像机校正映射

格式:

void initUndistortRectifyMap(InputArray cameraMatrix,

InputArray distCoeffs,

InputArray R,

InputArray newCameraMatrix, //矫正后新相机内参矩阵

Size size,

int m1type,

OutputArray map1, //输出的X坐标重映射

OutputArray map2) //输出的Y坐标重映射

OpenCV:双目标定函数

9、remap:把一幅图像中某位置的像素放置到另一幅图像指定位置的过程

格式:

void remap( InputArray src, //输入图像

           OutputArray dst, //输出图像

           InputArray map1,//第一个映射

           InputArray map2, //第二个映射

           int interpolation, //插值

           intborderMode=BORDER_CONSTANT,

           const Scalar& borderValue=Scalar()

           )

OpenCV:双目标定函数

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢