kinect 運用Openni2 0 產生點雲

2021-09-22 22:06:36 字數 1457 閱讀 4529

我的kinect型號:primesense  carmine 

使用openni2.0

這次比較粗糙,就是想將攝像頭採集的深度資訊轉化為現實世界的三維座標,然後用opengl畫出來。

這裡沒有降噪、取樣,所以也稱不上是「點雲」

原理什麼的,請參考這位仁兄:

他是openni1.0做的,**寫的也比較規整,我就比較隨意了,適合像我一樣的新手理解

#include#include #include #include #include "onisampleutilities.h"

#define sample_read_wait_timeout 200 //2000ms

using namespace openni;

using namespace std;

typedef struct data

data;

videostream depth;

videoframeref frame;

int width;

int height;

void opengl_init(void)

void display()

} glend();

glflush();

glutswapbuffers();

}void opengl_changesize(int w, int h)

void opengl_idel()

int main(int argc, char **ar**)

rc = depth.start();

glutinit(&argc,ar**);

glutinitdisplaymode(glut_double|glut_rgba);

glutinitwindowposition(100,100);

glutinitwindowsize(800, 600);

glutcreatewindow("first blood");

opengl_init();

glutdisplayfunc(&display);

glutidlefunc(opengl_idel);

glutmainloop();

return 0;

}

openni2.0 sample裡帶的圖:

背景是書架+我的手

下面這幅是還原三維世界:

下次將學習pcl的東西,爭取給出以下效果:

openni2結構簡介

openni框架是一套開源的sdk,用於開發3d感測器的中間層和應用層。各個感測器需要實現onidriverapi.h中定義的介面,具體實現在openni2 source drivers目錄下,不同感測器編譯成不同的動態庫。openni initialize 用於載入各個感測器的動態庫,並獲得動態庫...

談談OpenNI 2初體驗

十 一 談談nite 2手部跟蹤在彩色影象上的顯示 在談談nite 2與opencv結合的第乙個程式和談談nite 2與opencv結合的第乙個程式中我們都是在深度影象中對獲得的手部資訊進行處理,但不知道在彩色影象中,手部跟蹤獲得手心座標是怎麼樣的?是否也和深度影象顯示一樣,能夠很好的定位到真正的手...

OpenNI2 和 OpenCV 結合的程式例項

開始之前,讓我們自己開始再熟練熟練openni 2的基本使用,主要包括以下幾個步驟 1.初始化openni環境 openni openni initialize 2.宣告並開啟device裝置 openni device devanydevice devanydevice.open openni a...