1) 上下文
我正在使用EmguCV的Unity插件,以便从我的C#代码中调用openCV函数。更准确地说,我需要调用SolvePnPRansac方法。
以下是SolvePnPRansac方法和预期参数的文档:
http://www.emgu.com/wiki/files/3.1.0/document/html/36ff5d6b-498a-0587-5350-370bdecf64d7.htm
2) 问题:
方法调用使unity编辑器本身崩溃,没有留下任何异常,没有堆栈跟踪,因为插件在内部崩溃,unity似乎无法处理它,尽管我使用了try-catch块。
堆栈跟踪:
at(包装器管理为本机)Emgu.CV.CvInvoke.cveSolvePnPRansac(intptr、intptr、intptr、intptr、intptr、bool、int、single、double、intptr、Emgu.CV.CvEnum.SolvePnpMethod)
在ObjectLocalization.LocalToCameraTrixFrompnp。。。
:
我可以成功运行:
CvInvoke.SolvePnP(objectPoints, imagePoints, cameraMatrix, distortionCoeffs, rvec, tvec, useIntrinsicGuess);
-
objectPoints的类型为Emgu.CV.Util.VectorOfPoint3D32F
-
imagePoints的类型为Emgu.CV.Util.VectorOfPointF
-
-
扭曲效应是Emgu.CV.Util.VectorOffload类型的1X4
-
-
而useIntrinsicGuess是bool类型
现在我试着:
CvInvoke.SolvePnPRansac(ransacObjPoints, ransacImgPoints, cameraMatrix, distortionCoeffs, rvec, tvec, useIntrinsicGuess, iterationsCount, reprojectionError, confident, inliers, Emgu.CV.CvEnum.SolvePnpMethod.Iterative);
哪里
-
IterationCount是int类型的100
-
-
自信是0.99的双精度类型
-
Inliner为空,类型为Emgu.CV.Util.VectorOfInt
它只是使unity编辑器崩溃。
我做错了什么?