获取彩色图像不在帧准备事件中

时间:2012-08-31 07:43:07

标签: c# kinect openkinect nui

我对kinect有些问题。 当我尝试从事件中获取彩色图像时:Sensor_AllFramesReady一切正常。 例如:

using (ColorImageFrame colorFrame = e.OpenColorImageFrame()) {
    //save image for print
    if (colorFrame == null) {
        return;
    }
    byte[] colorData = new byte[colorFrame.PixelDataLength];
    colorFrame.CopyPixelDataTo(colorData);
    int averagedImage = colorFrame.Width * PixelFormats.Bgr32.BitsPerPixel / 8;
    int stride = colorFrame.Width * 4;
    pictureBitmap = BitmapSource.Create(colorFrame.Width, colorFrame.Height, 96, 96, PixelFormats.Bgr32, null, colorData, stride);
}

但是当我尝试使用

在事件之外执行相同的代码时
using (ColorImageFrame Image = Sensor.ColorStream.OpenNextFrame(10)) {

}

我收到错误: “设置事件监听器时无法调用此API”

我尝试在调用此函数之前删除该事件,但这不会改变任何内容

1 个答案:

答案 0 :(得分:1)

您必须选择,事件处理程序或轮询方法。您可以使用该事件并保存最后一帧以在其他地方使用它。