使用Kinect的使用Emgu CV(Using Kinect with Emgu CV)

2019-06-26 19:22发布

随着EmguCV,捕捉到从我们使用网络摄像图像:

Capture cap = new Capture(0);

Image < Bgr, byte > nextFrame = cap.QueryFrame();

...

...

但我不知道如何捕捉从我的Kinect,我曾试图图像kinectCapture类,但是它并没有和我一起工作。 谢谢

Answer 1:

基本上,你需要从ColorStream捕捉和图像并转换为EmguCV图片类:

转换从Windows位图(Kinect的ColorStream)EmguCV图片:

你有一个Windows位图变量,其中持有Kinect的框架。

Bitmap bmap = new Bitmap(weightFrame,HeightFrame,System.Drawing.Imaging.PixelFormat.Format32bppRgb);

...

//Here is the code where you capture the image in the ColorFrameReady....

...

Image<Bgr,Byte> frameActualKinect = bmap.ToOpenCVImage<Bgr, Byte>();

使检测:

调整

currentFrame = frameActualKinect.Resize(320, 240, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC);

//Convert it to Grayscale

gray = currentFrame.Convert<Gray, Byte>();

//Face Detector

MCvAvgComp[][] facesDetected = gray.DetectHaarCascade(face, 1.2, 10, Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING,new System.Drawing.Size(20, 20));

PD(该辅助方法):

public static Image<TColor, TDepth> ToOpenCVImage<TColor, TDepth>(this Bitmap bitmap)
        where TColor : struct, IColor
        where TDepth : new()
    {
        return new Image<TColor, TDepth>(bitmap);
    }


Answer 2:

当使用EmguCV,您通常使用其他库来访问Kinect的。 例如, Kinect的对于Windows SDK ,或OpenNI 。 然后访问使用OpenNI或SDK相机后,您可以编辑您在使用EmguCV的工具,在屏幕上投影图像。 这里有一个如何使用EmguCV与OpenNI和SDK一些链接

  • https://groups.google.com/forum/#!topic/openni-dev/I0InsNgIIz4
  • http://www.geek-press.com/?p=23 (测试版SDK的2)
  • Emgu简历和官方微软Kinect SDK?

希望这可以帮助!



文章来源: Using Kinect with Emgu CV
标签: c# kinect emgucv