如何在OpenCvSharp中从InputOutputArray创建对象?

如何在OpenCvSharp中从InputOutputArray创建对象?,opencv,opencvsharp,Opencv,Opencvsharp,我正在C解决方案中使用OpenCvSharp,我想使用Cv2.CalibrateCamera方法校准相机。要使用此函数,我需要创建一些类型为OpenCvSharp.InputOutputArray的对象。但是,类OpenCvSharp.InputOutputArray似乎没有构造函数。我还尝试了方法InputOutputArray.Create(),但它返回一个OutputArray对象。如何创建该类的实例?到CalibleCamera的InputOutputArray参数是输出值cameraM

我正在
C
解决方案中使用
OpenCvSharp
,我想使用
Cv2.CalibrateCamera
方法校准相机。要使用此函数,我需要创建一些类型为
OpenCvSharp.InputOutputArray
的对象。但是,类
OpenCvSharp.InputOutputArray
似乎没有构造函数。我还尝试了方法
InputOutputArray.Create()
,但它返回一个
OutputArray
对象。如何创建该类的实例?

CalibleCamera
InputOutputArray
参数是输出值
cameraMatrix
Distcoefs
。对于这些参数,可以使用空的初始化
Mat
。OpenCV将调整它们的大小并用返回值填充它们。此示例显示了语法。(当然,在调用
calibleCamera
之前,您需要使用真实数据填充
image
objectPoints
imagePoints

本例使用
List
表示
objectPoints
imagePoints
,但它们可以是实现
IEnumerable
的任何集合类型(例如
Mat[]

Mat图像;
列出对象点;//CalibleCamera的输入
列出图像点;//CalibleCamera的输入
Mat cameraMatrix=新Mat();//来自CalibleCamera的输出
Mat DISTCOFFS=新Mat();//来自CalibleCamera的输出
Mat[]rvecs;//来自CalibleCamera的输出
Mat[]tvecs;//来自CalibleCamera的输出
CalibrationFlags flags=CalibrationFlags.FixAspectRatio;
//在调用CalibleCamera之前,使用真实数据填充image、objectPoints和imagePoints
Cv2.CalibleCamera(objectPoints、imagePoints、image.Size()、cameraMatrix、Discoefs、out-rvecs、out-tvecs、flags);
Mat image;
List<Mat> objectPoints; // input to CalibrateCamera
List<Mat> imagePoints; // input to CalibrateCamera
Mat cameraMatrix = new Mat(); // output from CalibrateCamera
Mat distCoeffs = new Mat(); // output from CalibrateCamera
Mat[] rvecs; // output from CalibrateCamera
Mat[] tvecs; // output from CalibrateCamera
CalibrationFlags flags = CalibrationFlags.FixAspectRatio;

//Populate image, objectPoints, and imagePoints with real data before calling CalibrateCamera

Cv2.CalibrateCamera(objectPoints, imagePoints, image.Size(), cameraMatrix, distCoeffs, out rvecs, out tvecs, flags);