程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Kinect for Windows SDK開發入門(一) 開發環境配置

Kinect for Windows SDK開發入門(一) 開發環境配置

編輯:關於.NET

前幾天無意中看到微軟發布了Kinect for windows sensor,進去看了一下Kinect應用的例子,發現 Kinect除了作為xbox360游戲的外設外還能開發一些很酷的應用,而且微軟也發布可針對Kinect開發的 Kinect for windows SDK1.0正式版本,原本想買一個Kinect for windows sensor來進行開發玩一玩的 ,可是那個出來沒多久,淘寶上只有代購的,而且比Kinect for Xbox360 sensor貴了很多,而且只能進 行開發,考慮到以後開發完了,想玩Xbox的話直接就再買個主機,連上這個就可以玩體感游戲了,所以 在淘寶上買了一個Kinect for Xbox360 sensor,這兩個sensor的最大區別是for windows版本的有近景 模式,能夠進行近景識別。

首先來看一下Kinect設備:

1. Kinect設備

黑色的 Kinect設備如下圖:基座和感應器之間有一個電動的馬達,通過程序能夠調整俯仰角度,在上面的感應 器中有一個紅外投影儀,兩個攝像頭,四個麥克風和一個風扇。打開外面的蓋子可以看到裡面的構造: 這些感應器用來捕捉RGB和深度數據,面對Kinect,從左往右看。最左邊是紅外光源,其次是LED指示燈 ,再次是彩色攝像頭,用來收集RGB數據,最右邊是紅外攝像頭用才采集景深數據。彩色攝像頭最大支持 1280*960分辨率成像,紅外攝像頭最大支持640*480成像。

在感應器 的下方是麥克風陣列,他包括四個不同的麥克風,一個在左邊的紅外發射器下面,另外3個在右邊景深攝 像頭下面。

初步了解了Kinect構造後,接下來看看開發環境的搭建:

2. Kinect for Windows SDK軟硬件環境

Kinect for Windows SDK是一些列的類庫,他能夠使得開發者能夠將 Kinect作為輸入設備開發各種應用程序。就像名字所顯示的那樣,Kinect for Windows SDK只能運行在 32位或者64位的windows7及以上版本的操作系統上。

硬件配置

一台電腦,當然內存越大越好(推薦2G或者以上),處理器頻率(2.66GHz及以上)越高越好。

Windows 7操作系統,以及支持Microsoft DirectX9.0c兼容的顯卡

Kinect for Xbox360 Sensor(如果單買的話,自帶有USB Power Adapter,如果是和Xbox360套裝一 起捆綁的話,因為Xbox主機能夠直接為Kinect外設提供電源,所以沒有電源,可能需要另買USB Power Adapter)

使用Visual Studio 2010 Express版本或者專業版進行開發時,需要安裝最新版本的Kinect for Windows SDK,SDK中包含有對Kinect的硬件驅動。

軟件配置

1. Visual Studio 2010 Express或者Visual Studio 2010專業版或其他版本

2. .NET Framework 4.0

3. Kinect for Windows SDK,最新版本為1.0版本,下載地址: http://www.microsoft.com/en-us/kinectforwindows/develop/overview.aspx

3. 安裝步驟

安裝SDK之前,需要斷開Kinect與電腦的連接,並關閉Visual Studio。安裝過程很簡單,等SDK 安裝完成之後,將Kinect電源線插上並連接到電腦上,Win7會自動尋找和安裝驅動,安裝完成後就可以 識別Kinect,這是Kinect上面LED指示燈會變成綠色。

看驅動是否安裝成功,可以到電腦的設備 管理器中查看,如下圖:在Microsoft Kinect節點下應該有3個項,分別是Microsoft Kinect Audio Array Control,Microsoft Kinect Camera, 和 Microsoft Kinect Security Control.

查看 Kinect麥克風是否安裝成功可以在設備管理器的聲音視頻游戲控制器節點下查看,如下圖,Kinect USB Audio 應該在這個節點下面:

4. 創建第 一個Kinect 項目

創建一個Kincet項目通常需要:

1. 創建一個VS項目,一般為了展示通 常創建一個wpf項目。

2. 添加Microsoft.Kinect.dll引用,如果是早期版本的SDK,這個名稱可 能不同。

3. 引入Kinect命名空間。

Kinect支持3中類型的托管應用程序,分別是:控制 台應用程序,WPF以及Windows Form應用程序。首先來創建一個Windows 控制台應用程序,然後在Main函 數所在的代碼中引入Kinect命名控件,代碼如下:

using Microsoft.Kinect;
static void Main(string[] args)
{
    //初始化sensor實例
    KinectSensor sensor = KinectSensor.KinectSensors[0];
                
    //初始化照相機
    sensor.DepthStream.Enable();
    sensor.DepthFrameReady += new EventHandler<DepthImageFrameReadyEventArgs>

(sensor_DepthFrameReady);
                
    Console.ForegroundColor=ConsoleColor.Green;
    
    //打開數據流
    sensor.Start();
    
    while (Console.ReadKey().Key != ConsoleKey.Spacebar)
    { 
                
    }
}
    
static void sensor_DepthFrameReady(object sender, DepthImageFrameReadyEventArgs e)
{
    using (var depthFrame=e.OpenDepthImageFrame())
    {
        if (depthFrame == null) return;
        short[] bits = new short[depthFrame.PixelDataLength];
        depthFrame.CopyPixelDataTo(bits);
        foreach (var bit in bits)
            Console.Write(bit);
    }
}

查看本欄目

在上面的代碼中,為了從攝像頭中獲取數據流,需要初始化KinectSensor對象,然後啟動他 。為了獲取景深數據,我們給sensor的DepthFrameReady注冊了時事件。上面的代碼中數據通過 DepthFrameReady事件觸發。在Kinect應用中,這些獲取數據的事件有 DepthFrameReady,ColorFrameReady以及SkeletonFrameReady。可以通過這些事件獲取豐富的數據來完成 各種有趣的應用。在上面的代碼中,我們簡單的將景深攝像頭獲取的數據輸出打印到控制台上。運行程 序,然後站在Kinect前面一段距離,你就會看到控制台上輸出的信息,酷吧。

5.Kinect SDK示例程序

安裝完Kinect for Windows SDK後,快捷菜單列表中有一個Kinect SDK Sample Browser,自帶有一些示例應用程序,打開後如下圖:

如果安裝 好了Kinect,就可以直接點擊運行了:我試了一下,挺有趣的:

Kinect Explorer:這是一WPF程 序,界面分為左右兩個圖像區域,左邊通過彩色攝像頭獲取圖像信息,並通過骨骼追蹤將骨骼疊加在圖 像上,右邊圖像是通過景深攝像頭獲取的景深信息,也在圖上疊加了骨骼信息,在這兩幅圖像下面是一 些列對成像參數的設置。這個例子主要是用來展示這幾個傳感器的應用以及如何獲取傳感器的信息,還 包括獲取骨骼數據。

Shape Game:這個一個簡單的游戲,界面上的人是通過骨骼追蹤繪制出來的 ,在Kinect前面晃動時,界面上的人也會跟著動,當碰到圖形時能夠得分。

Kinect Audio Demo :這個是語音識別的例子上面展示的是聲音的方向,下面是語音識別的結果,有Red,Green,Blue三個 單詞,當站在Kinect前面說某個單詞時,如果識別正確,橫線會顯示相應的顏色。試了一下,還是挺靈 敏的。後的的例子是針對Kinect for Windows sensor設備的例子,我的Kinect for xbox Sensor不能用 。

6.結語

本文簡要介紹了Kinect傳感器的結構,開發所需要的軟硬件環境,並通過一個 小例子展示了如何從Kinect獲取數據,最後簡單介紹了Kinect SDK所帶的例子,希望本文能幫助你熟悉 Kinect for windows SDK。

作者:   yangecnu(yangecnu's Blog on 博客園)

出處:http://www.cnblogs.com/yangecnu/

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved