一个月过去了,我正在制作一个机器人,它可以探索未知区域并使用 Kinect 传感器制作 3D 地图。
由于我是 C# 开发人员,我使用 EmguCV 作为 OpenCV 库的包装器,以将其功能用于计算机视觉。
出于某种目的,我想使用 OpenCV 提供的“estimateAffine3D”功能,但尚未添加到 EmguCV。因此,我想到了使用“P/Invoke”调用来像 Emgu 那样使用该函数。我打开了Emgu的源码,找到了CvInvoke类和calib3d类。在那我添加了这样的功能:
[DllImport(OPENCV_CALIB3D_LIBRARY, CallingConvention = CvInvoke.CvCallingConvention)]
[return: MarshalAs(CvInvoke.BoolToIntMarshalType)]
public static extern bool cvEstimateAffine3D(
IntPtr srcpt,
IntPtr dstpt,
out IntPtr outp,
out IntPtr outliers,
double ransacThreshold = 3.0f,
double confidence = 0.99f);
(抱歉有任何明显的错误:我只是 P/Invoking 的新手)
这件事根本行不通。如果在其上放置断点并且 Visual Studio 命中它,它不会在断点处停止,继续!
请帮忙!任何帮助,将不胜感激...
谢谢!
最好的