这是来自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
计算每个摄像机的内在摄像机参数cameraMatrix2
,distCoeffs1
和失真系数distCoeffs2
,CvCalibrateCamera()
,然后将它们作为CvstereoCalibrate()
的参数?
答案 0 :(得分:5)
InputOutputArray
是"占位符"类型。在函数内部对此类型的参数进行了修改。
还有其他两种类型:
InputArray
在函数内部是只读的。这些参数用作函数的源数据,但不会被函数修改。
OutputArray
这是只写的。在函数内修改此类型的参数。通常这意味着它们是在函数内部创建的。这意味着数组中的数据将被函数生成的数据替换。
这个原则被使用,因此功能可以"返回"不止一个值。