Usando o Kinect com o Emgu CV

Com EmguCV, para capturar uma imagem de uma web-cam usamos:

Capture cap = new Capture(0); Image  nextFrame = cap.QueryFrame(); ... ... 

Mas eu não sei como capturar imagens do meu Kinect, eu tentei a class kinectCapture mas não funcionou comigo. obrigado

Basicamente, você precisa capturar e Image a partir do ColorStream e converter para uma class EmguCV Image:

Conversão para a imagem EmguCV do Bitmap do Windows (Kinect ColorStream):

Você tem uma variável Bitmap do Windows, onde contém o Kinect Frame.

 Bitmap bmap = new Bitmap(weightFrame,HeightFrame,System.Drawing.Imaging.PixelFormat.Format32bppRgb); ... //Here is the code where you capture the image in the ColorFrameReady.... ... Image frameActualKinect = bmap.ToOpenCVImage(); 

Faça a detecção:

Redimensionar

 currentFrame = frameActualKinect.Resize(320, 240, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC); //Convert it to Grayscale gray = currentFrame.Convert(); //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 (o método auxiliar):

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

Ao usar o EmguCV, você geralmente usa outra biblioteca para acessar o Kinect. Por exemplo, o Kinect para Windows SDK ou OpenNI . Então, depois de acessar a câmera usando o OpenNI ou o SDK, você pode editar a imagem que você projeta na canvas usando as ferramentas do EmguCV. Aqui estão alguns links de como usar o EmguCV com o OpenNI e o SDK

Espero que isto ajude!