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