Вопрос по .net, c# – Конвертировать Kinect ColorImageFrame в растровое изображение

9

Я использую Kinect (Microsoft SDK) с XNA. Я хочу использовать GRATF для распознавания маркеров

Как конвертировать данные KinectColorImageFrame кSystem.Drawing.Bitmap или жеAForge.Imaging.UnmanagedImage что я могу обработать их с GRATF?

void kinectSensor_ColorFrameReady(object sender, ColorImageFrameReadyEventArgs e)
{
    Bitmap bitmap = null;
    ColorImageFrame frame = e.OpenColorImageFrame();
    byte[] buffer = new byte[frame.PixelDataLength];
    frame.CopyPixelData(buffer);

    // how to convert the data in buffer to a bitmap?

    var glyphs = recognizer.FindGlyphs(bitmap);

    ...
}
посмотрите на эту статью: Codeproject.com / Статьи / 730842 / ... (я знаю, что это старо, но для тех, кто видит это сейчас) ThunderWiring

Ваш Ответ

1   ответ
11

Ты можешь найти ответв этой стать.
Чтобы подвести итог, этот метод должен сделать свое дело:

Bitmap ImageToBitmap(ColorImageFrame img)
{
     byte[] pixeldata = new byte[img.PixelDataLength];
     img.CopyPixelDataTo(pixeldata);
     Bitmap bmap = new Bitmap(img.Width, img.Height, PixelFormat.Format32bppRgb);
     BitmapData bmapdata = bmap.LockBits(
         new Rectangle(0, 0, img.Width, img.Height),
         ImageLockMode.WriteOnly, 
         bmap.PixelFormat);
     IntPtr ptr = bmapdata.Scan0;
     Marshal.Copy(pixeldata, 0, ptr, img.PixelDataLength);
     bmap.UnlockBits(bmapdata);
     return bmap;
 }
почему это дает А = 255 все время? Md Sifatul Islam
спасибо, приятель! отличная работа Md Sifatul Islam

Похожие вопросы