" InputOutputArray"的含义在CvStereoCalibrate()声明中

时间:2015-04-12 20:04:40

标签: c++ opencv

这是来自http://docs.opencv.org/的c ++中CvStereoCalibrate()的声明

  

C ++: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)

1)参数类型InputOutputArray是什么意思?

2)我可以使用cameraMatrix1计算每个摄像机的内在摄像机参数cameraMatrix2distCoeffs1和失真系数distCoeffs2CvCalibrateCamera(),然后将它们作为CvstereoCalibrate()的参数?

1 个答案:

答案 0 :(得分:5)

InputOutputArray是"占位符"类型。在函数内部对此类型的参数进行了修改。

还有其他两种类型:

InputArray在函数内部是只读的。这些参数用作函数的源数据,但不会被函数修改。

OutputArray这是只写的。在函数内修改此类型的参数。通常这意味着它们是在函数内部创建的。这意味着数组中的数据将被函数生成的数据替换。

这个原则被使用,因此功能可以"返回"不止一个值。