随着EmguCV,捕捉到从我们使用网络摄像图像:
Capture cap = new Capture(0);
Image < Bgr, byte > nextFrame = cap.QueryFrame();
...
...
但我不知道如何捕捉从我的Kinect,我曾试图图像kinectCapture
类,但是它并没有和我一起工作。 谢谢
随着EmguCV,捕捉到从我们使用网络摄像图像:
Capture cap = new Capture(0);
Image < Bgr, byte > nextFrame = cap.QueryFrame();
...
...
但我不知道如何捕捉从我的Kinect,我曾试图图像kinectCapture
类,但是它并没有和我一起工作。 谢谢
基本上,你需要从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);
}
当使用EmguCV,您通常使用其他库来访问Kinect的。 例如, Kinect的对于Windows SDK ,或OpenNI 。 然后访问使用OpenNI或SDK相机后,您可以编辑您在使用EmguCV的工具,在屏幕上投影图像。 这里有一个如何使用EmguCV与OpenNI和SDK一些链接
希望这可以帮助!