Я пытаюсь сохранить данные изображения глубины из kinect, но ошибка, которую я до сих пор не могу исправить. Кто-нибудь знает, как справиться?
Bmp1 = new Bitmap(depthFrameDescription.Width, depthFrameDescription.Height, PixelFormat.Format16bppGrayScale);
Rect1 = new Rectangle(0, 0, depthFrameDescription.Width, depthFrameDescription.Height);
Size_depth = (uint)(depthFrameDescription.Width * depthFrameDescription.Height * 2);
depthFrameReader = kinectSensor.DepthFrameSource.OpenReader();
depthFrameReader.FrameArrived += depthReader_FrameArrived;
kinectSensor.Open();
private void depthReader_FrameArrived(object sender, DepthFrameArrivedEventArgs e)
{
using (DepthFrame depthFrame = e.FrameReference.AcquireFrame())
{
if (depthFrame != null)
{
BitmapData cBitmapData = Bmp1.LockBits(Rect1, ImageLockMode.WriteOnly, PixelFormat.Format16bppGrayScale);
depthFrame.CopyFrameDataToIntPtr(cBitmapData.Scan0, Size_depth);
Bmp1.UnlockBits(cBitmapData);
Bitmap newbitmap = new Bitmap(Bmp1.Width, Bmp1.Height, Bmp1.PixelFormat);
Bmp1.Dispose();
var memorystream = new MemoryStream();
newbitmap.Save(memorystream, ImageFormat.Tiff);
var filestream = File.OpenWrite(path_test);
byte[] newbitmapdata = memorystream.ToArray();
memorystream.Write(newbitmapdata, 0, newbitmapdata.Length);
memorystream.Close();
}
}
}