2012-06-01 17 views
9

मैं एक्सएनए के साथ किनेक्ट (माइक्रोसॉफ्ट एसडीके) का उपयोग कर रहा हूं। मैं मार्कर मान्यताकिनेक्ट कलर इमेज फ्रेम को बिटमैप में कनवर्ट करें

के लिए GRATF का उपयोग कैसे करें एक System.Drawing.Bitmap या AForge.Imaging.UnmanagedImage कि मैं उन्हें GRATF साथ संसाधित कर सकते हैं करने के लिए एक Kinect ColorImageFrame का डेटा परिवर्तित करना चाहते हैं?

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); 

    ... 
} 
+0

देखो: http://www.codeproject.com/Articles/730842/Kinect-for-Windows-version-Color-depth-
यह संक्षेप में, इस विधि चाल करना चाहिए और-इन्फ्रा (मुझे पता है कि यह पुराना है, लेकिन जो भी इसे देख रहा है) – ThunderWiring

उत्तर

11

आप उत्तर in this article देख सकते हैं।

इस लेख पर
Bitmap ImageToBitmap(ColorImageFrame Image) 
{ 
    byte[] pixeldata = new byte[Image.PixelDataLength]; 
    Image.CopyPixelDataTo(pixeldata); 
    Bitmap bmap = new Bitmap(Image.Width, Image.Height, PixelFormat.Format32bppRgb); 
    BitmapData bmapdata = bmap.LockBits(
     new Rectangle(0, 0, Image.Width, Image.Height), 
     ImageLockMode.WriteOnly, 
     bmap.PixelFormat); 
    IntPtr ptr = bmapdata.Scan0; 
    Marshal.Copy(pixeldata, 0, ptr, Image.PixelDataLength); 
    bmap.UnlockBits(bmapdata); 
    return bmap; 
} 
+0

आपको धन्यवाद! अच्छा कार्य! –

+0

यह हर समय ए = 255 क्यों दे रहा है? –

संबंधित मुद्दे