如何在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);