標籤:

openni,opencv,opengl這三個到底是什麼?有什麼關係?做什麼用?


OpenNi沒用過,感覺就是微軟Kinect SDK的免費版,用於Kinect體感的編程API。貌似開源,github上有源碼。功能上整體看應該沒有Kinect SDK好,但跨平台,免費。當然也支持一些類似kinect的產品,詳見OpenNi的背後公司primesense

OpenCV主要用於圖像處理、圖像分析、機器視覺和一些模式識別。內容豐富,使用很廣泛。就是一系列的庫,實現了處理圖像、讓機器理解圖像內容和利用圖像建立3維世界描述的功能。

OpenGL就是工業標準的顯示API,定義了一系列的函數,調用這些函數就可以來操作顯卡,實現畫2維3維圖片。當然不同的顯卡公司,會根據自己的顯卡和GPU來具體實現這些函數。

關於各種Open標準,可以參見khronos公司,在維護和建立很多多媒體相關標準。


OpenNi 類似Kinect的SDK,但是裡面的很多演算法不是開源的,比如實時的human pose estimation, hand tracking。這些演算法來自一個叫primesense的公司的middleware,估計也是微軟持資,openni只有介面。

OpenCV就非常好用,幾乎所有CV領域state-of-the-art的演算法都有,同時也包括了一些machine learning的常用方法,比如SVM什麼的。

OpenGL是CG的庫,只做過rendering,3D modeling神馬的,了解不是很多,但是好像不是很全,至少3D引擎這塊用別的庫的比較多。


openni是一個開源sdk,主要是輸出三維圖的。


推薦閱讀:

OpenGL ES2 對象樹繪製與 VBO組織問題?
操作系統是如何管理GPU等計算資源的?
為什麼 NVIDIA 的示例總是一條龍?
如何用OpenGL封裝一個2D引擎?
WebGL 是否需要以 OpenGL 為學習基礎?

TAG:OpenGL | OpenCV |