Hololens-Unity定位相機(jī)(轉(zhuǎn))

轉(zhuǎn)自:http://dev.arinchina.com/177wz/ar9641/9641/1

啟用相機(jī)攝影攝像能力

在使用攝像頭時(shí),我們必須啟用WebCam能力。

1.? ???在Unity中,打開Player settings,(通過(guò)導(dǎo)航,到“編輯>項(xiàng)目設(shè)置>播放器”頁(yè)面訪問(wèn)播放器設(shè)置)

2.? ???展開Windows Store標(biāo)簽頁(yè)

3.? ???在"Publishing Settings > Capabilities"部分中,勾選WebCam能力

在同一時(shí)刻中只能執(zhí)行一次相機(jī)操作。為了識(shí)別當(dāng)前相機(jī)環(huán)境處于哪種模式下(拍照還是視頻或無(wú)場(chǎng)景),你可以通過(guò)UnityEngine.VR.WSA.WebCam.Mode來(lái)進(jìn)行檢查。

照片捕獲

命名空間:UnityEngine.VR.WSA.WebCam

類型:PhotoCapture

PhotoCapture類型允許使用相機(jī)拍攝靜態(tài)照片。使用相機(jī)拍攝的正常模式如下:

1.??創(chuàng)建PhotoCapture對(duì)象

2.??通過(guò)使用想要的設(shè)置來(lái)創(chuàng)建一個(gè)CameraParameters對(duì)象

3.??調(diào)用StartPhotoModeAsync(),開始拍照模式

4.??選取想要的照片拍攝

·? ?? ???(可選項(xiàng))進(jìn)一步處理圖像

5.? ?關(guān)閉拍照模式并釋放資源

使用PhotoCapture的通用設(shè)置

對(duì)于任意拍照方式,開始的前三步都如下:

創(chuàng)建PhotoCapture對(duì)象

存儲(chǔ)對(duì)象,配置拍攝參數(shù)并開始拍照模式

最后,需要使用同樣的清理代碼來(lái)關(guān)閉相機(jī)

完成這些步驟后,你可以挑選使用捕獲照片方式。

捕獲照片至文件

最簡(jiǎn)單的操作是直接將照片捕獲到文件。照片可以被存儲(chǔ)為PNG或JPG格式。

如果我們成功開始了拍照模式,就需要拍照并將照片存儲(chǔ)到磁盤上。

完成捕獲照片到磁盤的操作后,我們需要退出拍照模式并清理對(duì)象

捕獲文件至Texture2D對(duì)象

我們可以把捕獲數(shù)據(jù)保存為Texture2D對(duì)象,做法和保存到磁盤類似。步驟如下:

在OnPhotoModeStarted,捕獲一幀圖像到內(nèi)存中。

我們需要把得到的結(jié)果賦給Texture2D對(duì)象,然后清理代碼

捕獲照片并與原始數(shù)據(jù)交互

為了在內(nèi)存中操作圖像原始數(shù)據(jù),需要的步驟和捕獲圖片到Texture2D類似,不同之處在于,OnCapturedPhotoToMemory()方法里可以獲得圖像原始數(shù)據(jù)并操作它們。

在下面的例子中,我們會(huì)創(chuàng)建一個(gè)List用來(lái)進(jìn)一步處理或者直接通過(guò)SetPixels()方法來(lái)應(yīng)用于Texture2D對(duì)象。

捕獲視頻

命名空間:UnityEngine.VR.WSA.WebCam

類型:VideoCapture

捕獲視頻的用法和捕獲照片相似,不同之處在于你必須指定一個(gè)幀率(FPS),并且直接存儲(chǔ)到磁盤上的視頻必須是MP4格式。

下面是具體步驟:

1.? ? 創(chuàng)建VideoCapture對(duì)象

2.? ? 使用我們想要的設(shè)置來(lái)創(chuàng)建一個(gè)CameraParameters對(duì)象

3.? ? 調(diào)用 StartVideoModeAsync()方法開始視頻捕獲模式

4.? ? 開始錄制視頻

5.? ? 停止錄制視頻

6.? ? 停止視頻捕獲模式并釋放相機(jī)資源

開始創(chuàng)建VideoCapture對(duì)象VideoCapture m_VideoCapture = null

設(shè)置參數(shù)

配置完成VideoCapture對(duì)象,開始錄制視頻

在開始錄制后,你需要通過(guò)更新UI或者行為來(lái)確保可以停止視頻捕獲。在這里我們只輸出log。

最后我們需要停止視頻捕獲,可以通過(guò)定時(shí)器或者其他輸入方式來(lái)實(shí)現(xiàn)。

一旦停止視頻捕獲,需要及時(shí)退出視頻捕獲模式并釋放相機(jī)資源。

故障問(wèn)題解決

·獲取不到分辨率

·? ?? ???確保你在項(xiàng)目中啟用了WebCam能力

·? ?? ???全息圖像無(wú)論怎樣設(shè)置都不能捕獲到圖片或者視頻中

·? ?? ???未來(lái)的更新會(huì)支持捕獲全息圖像

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容