OpenNI的應(yīng)用與功能
在計算機(jī)視覺和人體識別領(lǐng)域,OpenNI是一個非常有價值的工具。它可以將人體空間深度信息從背景中剝離出來,并且演化為更為豐富的人體空間位置信息,讓抽象的視覺信息裝換為具體的數(shù)字信息,從而使得計算機(jī)以及
在計算機(jī)視覺和人體識別領(lǐng)域,OpenNI是一個非常有價值的工具。它可以將人體空間深度信息從背景中剝離出來,并且演化為更為豐富的人體空間位置信息,讓抽象的視覺信息裝換為具體的數(shù)字信息,從而使得計算機(jī)以及開發(fā)者可以去識別和使用這些信息。
圖生成器
OpenNI中提供了幾個基礎(chǔ)應(yīng)用,包括圖生成器、深度生成器、用戶生成器和場景分析器等。當(dāng)一個圖生成器被創(chuàng)建時,其輸出模式是系統(tǒng)默認(rèn)的輸出模式,但開發(fā)者有時候需要獲取或修改圖生成器當(dāng)前的模式。在OpenNI中,提供了GetMapOutputMode()和SetMapOutputMode()兩個函數(shù)來實現(xiàn)此功能。
另外,對于不同的圖,其每一個像素構(gòu)成所使用的字節(jié)數(shù)則有所不同。在OpenNI中,提供了獲取像素圖的字節(jié)數(shù)函數(shù)xnGetBytePerPixel(),方便開發(fā)者進(jìn)行相關(guān)操作。
深度生成器
深度生成器也是圖生成器的一種,其產(chǎn)生的一張張像素圖中每一個像素所存儲的數(shù)據(jù)是這個像素點(diǎn)距離攝像頭的距離,也就是深度。在OpenNI中,開發(fā)者可以通過調(diào)用GetMetaData()函數(shù)來獲得深度生成器的元數(shù)據(jù)對象,方便進(jìn)行后續(xù)相關(guān)操作。
除此之外,開發(fā)者也可以通過GetDepthMap()函數(shù)來獲取深度圖,該函數(shù)返回一張記錄了深度數(shù)據(jù)的圖,可以看作是由深度像素圖組成的一維矩陣,其大小為nXRes*nYRes。
用戶生成器
OpenNI中提供了一種特殊的圖像生成器——用戶生成器,它可以用來識別人體,并且可以跟蹤多個人的位置和動作。通過分析深度數(shù)據(jù)可以分析一些特定的數(shù)據(jù),OpenNI中提供了相應(yīng)的用戶位置功能函數(shù),可以幫助開發(fā)者輕松實現(xiàn)用戶的識別和跟蹤。
設(shè)備參數(shù)獲取
對于3D sensor來說,了解設(shè)備的最大深度和視野范圍是至關(guān)重要的。OpenNI中提供了GetDeviceMaxDepth()函數(shù),可以幫助開發(fā)者抓取最大深度。同時,使用GetFiledOfView()函數(shù)可以獲取深度生成器的視野范圍屬性,包括設(shè)備工作事業(yè)的水平弧度和垂直弧度等。
結(jié)論
OpenNI是一個非常有用的工具,可以幫助開發(fā)者在計算機(jī)視覺和人體識別領(lǐng)域快速實現(xiàn)相關(guān)功能。本文簡單介紹了OpenNI的基礎(chǔ)應(yīng)用、圖生成器、深度生成器、用戶生成器、場景分析器,以及相關(guān)的一些功能函數(shù)。開發(fā)者可以根據(jù)自己的需求,進(jìn)一步深入學(xué)習(xí)和掌握OpenNI的相關(guān)知識和技術(shù),從而開發(fā)出更為優(yōu)秀的產(chǎn)品和應(yīng)用。