2012-11-08 88 views
2

我目前正在使用Kinect,並且我想繪製kinect的VGA圖像上的骨骼骨骼。首先,我得到的圖片從Kinect的:MFC和Kinect:在Kinect的圖像上繪製一條線

HRESULT hr = globalNui->NuiImageStreamGetNextFrame(videoStreamHandle, 0, &frame); 
INuiFrameTexture * texture = frame.pFrameTexture; 
NUI_LOCKED_RECT lockedRect; 
texture->LockRect(0, &lockedRect, NULL, 0); 

在這裏,我們有它在,所以我們可以用它做任何事情。最常見的方法是將其轉換爲位圖並將其放在屏幕上,但我想對圖像進行一些修改。我使用Direct2D將其顯示在屏幕上,因此我需要一種可以轉換爲ID2D1Bitmap的圖像格式,並且我必須能夠在其上繪製線條和點。我需要什麼樣的圖像?

回答

0

所以我認爲,沒有圖像格式正在做我想要的。沒問題,因爲我發現了Direct2D的所有可能性。現在我實際上並沒有改變圖像,但對用戶來說,它看起來是一樣的。

1

鎖定的緩衝區將包含一個大小爲width * height * 4字節的簡單數組。每個像素是一個4字節的XRGB(請參閱文檔:http://msdn.microsoft.com/en-us/library/jj131027.aspx)。圖像將按行順序存儲,因此位置x,y上的像素將具有數組索引((width * y) + x) * 4)

這是一個標準的圖像緩衝區格式,您可以隨意使用幾乎任何其他圖像處理庫,如Microsoft自己的WIC,IPL或OpenCV或其他。你應該沒有問題遍歷緩衝區,並直接設置RGB值,這對於簡單的圖形工作應該是綽綽有餘的。