我正在使用 Emgu OpenCV C# 包装器,并且我正在尝试转换其函数返回的 IntPtr(s) 并访问实际的 IplImage OpenCV 对象。有任何想法吗?我是 C# 新手,欢迎提出任何建议。
干杯。
好吧,得到了解决方案,并在这里发布 -
IntPtr rgb32;
...
MIplImage rgb32Image = new MIplImage();
rgb32Image = (MIplImage)Marshal.PtrToStructure(rgb32, typeof(MIplImage));
当然, rgb32Image 是需要的。
在 2020 年版本 4.2 中,您可以使用:
Emgu.CV.Image<TColor, TDepth>.FromIplImagePtr(System.IntPtr)
注意:还要认识到,从 v4.2 开始,要将位图转换为 Image<,>,您现在必须使用 Emgu.CV.runtime.windows Nuget 包中的位图扩展方法 ToImage<,>()(请参阅http://www.emgu.com/wiki/index.php/Version_History#Emgu.CV-4.2.0)。这让我一开始有些头疼。