如何在 OpenCvSharp 中从 InputOutputArray 创建对象?
How to create an object from InputOutputArray in OpenCvSharp?
我在 C#
解决方案中使用 OpenCvSharp
,我想使用 Cv2.CalibrateCamera
方法校准相机。要使用此功能,我需要创建一些 OpenCvSharp.InputOutputArray
类型的对象。但是,class OpenCvSharp.InputOutputArray
似乎没有构造函数。我也试过 InputOutputArray.Create()
方法,但它 returns 一个 OutputArray
对象。如何创建此 class 的实例?
CalibrateCamera
的 InputOutputArray
参数是输出值 cameraMatrix
和 distCoeffs
。您可以为这些参数使用空的已初始化 Mat
。 OpenCV 将调整它们的大小并用 return 值填充它们。此示例显示语法。 (当然,在调用 CalibrateCamera
之前,您需要用真实数据填充 image
、objectPoints
和 imagePoints
。)
此示例将 List<Mat>
用于 objectPoints
和 imagePoints
,但它们可以是实现 IEnumerable
的任何集合类型(例如 Mat[]
)。
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);
我在 C#
解决方案中使用 OpenCvSharp
,我想使用 Cv2.CalibrateCamera
方法校准相机。要使用此功能,我需要创建一些 OpenCvSharp.InputOutputArray
类型的对象。但是,class OpenCvSharp.InputOutputArray
似乎没有构造函数。我也试过 InputOutputArray.Create()
方法,但它 returns 一个 OutputArray
对象。如何创建此 class 的实例?
CalibrateCamera
的 InputOutputArray
参数是输出值 cameraMatrix
和 distCoeffs
。您可以为这些参数使用空的已初始化 Mat
。 OpenCV 将调整它们的大小并用 return 值填充它们。此示例显示语法。 (当然,在调用 CalibrateCamera
之前,您需要用真实数据填充 image
、objectPoints
和 imagePoints
。)
此示例将 List<Mat>
用于 objectPoints
和 imagePoints
,但它们可以是实现 IEnumerable
的任何集合类型(例如 Mat[]
)。
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);