OpenNI的基礎應用?

Tags: 基礎, 生成器,

OpenNI作用:可以將人體空間深度信息從背景中剝離出來,並且演化為更為豐富的人體空間位置信息,讓抽象的視覺信息裝換為具體的數字信息,從而使得計算機以及開發者可以去識別和使用這些信息。

這裡簡單介紹一些OpenNI在開發中的使用方法;

OpenNI的基礎應用、圖生成器、深度生成器、用戶生成器、場景分析器,以及OpenNI的一些功能。

OpenNI的基礎應用

工具/原料

OpenNI開源庫

Visual Studio 2010

方法/步驟

上下文對像資源釋放:

OpenNI程序某些功能或者整體運行結束後,需要銷燬上下文對象,釋放資源。

在OpenNI中上下文對象下就提供了這樣的自銷燬函數Shutdown();

OpenNI的基礎應用

更新數據:

OpenNI的更新機制是在應用程序中的實現方法就是在開發者要獲取數據之前,調用update函數,將生產節點預置的數據更新為最新的數據,然後從生產節點獲取數據,從而確保獲得最新的數據,調用更新這個功能是由上下文對象來控制的,由於一個上下文對象中可能有多個生產節點,所有OpenNI 就提供了4個update函數。

OpenNI的基礎應用

鏡像設置:

深度傳感器(3D sensor)獲取到的數據是經過成像的,左右相反;

在一些情況下可能需要把這些數據恢復到正常情況,此時就要再一次鏡像操作;

OpenNI的基礎應用

圖像位置校正:

通常情況下統一把設備當成原點來使用其座標系,然而實際上,深度攝像頭和彩色攝像頭的物理位置並不是同一位置,並且這兩個攝像頭的參數也不相同。

針對這種情況,OpenNI中提供了一個AlternativeViewPointCapability()函數,通過調用這個函數就可以完成彩色圖像和深度圖像的校準。

OpenNI的基礎應用

圖生成器:

輸出數據模式是一種像素圖格式類型的生產節點都稱為圖生成器。

每一個圖生成器都有其特定支持的輸出模式。

在圖生成器模式之下,提供了獲取圖生成器支持模式數量,以及支持模式的函數,調用圖生成器模式下的xnGetSupportedMapOutputModesCounts()函數可以獲得該圖生成模式的數量。

OpenNI的基礎應用

調用圖生成器下的GetSupportedMapOutputModes()函數則可以獲得圖生成器所支持的所有的輸出模式。

OpenNI的基礎應用

圖生成器輸出模式:

圖生成器本質是輸出一張像素圖。像素圖的一些屬性則構成了這個圖生成器的輸出模式。

在OpenNI中給出了圖輸出模式的三個屬性,nXRes(X軸像素),nYRes(Y軸像素),nFPS(幀數)。

OpenNI的基礎應用

注意事項

圖生成器本質是輸出一張像素圖。像素圖的一些屬性則構成了這個圖生成器的輸出模式。

深度傳感器(3D sensor)獲取到的數據是經過成像的,左右相反

通常情況下統一把設備當成原點來使用其座標系

相關問題答案