0

我想使用 emguCV C# 与 kinect 交互。我正在使用 CLNU 驱动程序。

我无法将 CLNUDevice.getCameraColorFrameRGB32() 输出 IntPtr 转换为任何可用格式。我尝试了 new Image(width= 480, hieght=640, stride = 480 * 3, IntPtr)

任何帮助表示赞赏。我相信这是这里给出的代码的 c# 版本。http://codelaboratories.com/forums/viewthread/518/

4

2 回答 2

0

这对我有用:

IntPtr rgb32 = CLNUIDevice.getCameraColorFrameRGB32();
MIplImage rgb32Image = new MIplImage();
rgb32Image = (MIplImage)Marshal.PtrToStructure(rgb32, typeof(MIplImage));

当然, rgb32Image 是需要的。我不确定如何使用 Image<> 类,但我确信 MIplImage 和 Image<> 之间存在一些转换。

希望这可以帮助。

于 2011-05-03T06:04:32.733 回答
0

好吧,我意识到库 dll 包含一些将数据转换为位图的函数。所以现在我有一个 emgucv Image<>。所以基本上,您只需将它添加到 NUIImage.cs 中,无论您需要什么。

return new Image(new System.Drawing.Bitmap(640, 480, 640 * 4, System.Drawing.Imaging.PixelFormat.Format32bppRgb, depthImage.ImageData));

您也可以使用相同的代码来获取位图。这是一个简单、微不足道的 hack。我希望 some1 可以解释正在发生的事情。不过速度很快。

于 2011-04-26T10:57:30.957 回答