目錄
- 寫在最前
- 1 kinect環境搭建
- 1.1 下載與安裝kinect
- 1.2測驗kinect是否連接成功
- 2 OpenCVSharp下載與配置
- 3 VS2015+OpenCVSharp+kinect v2.0采集影像并顯示
- 3.1 參考工具包
- 3.2應用:kinect采集影像并顯示
- 4 結語
寫在最前
這個專案是我畢業設計的一些作業,這是第一次更新,之后也陸陸續續更新最新的成果,寫下這些以作記錄,所以如果有什么寫的不夠好的地方,希望各路神仙大佬多多包涵,指點一二,
我畢業設計的主要任務就是完成動態手勢識別,并將其用在某一虛擬現實設備上,拓展互動方式,
主要思路就是使用kinect采集影像,使用C#語言和OpenCVSharp進行處理,對手勢進行識別,之后再將識別技術移植到互動方面,所以總的作業可以分成手勢識別和互動拓展兩個方面,
本文章是第一次對專案進行記錄,所以主要介紹開發環境的搭建,歡迎各位大佬的交流!!
1 kinect環境搭建
我搭建kinect環境的平臺為win10+vs2015+kinect v2.0
1.1 下載與安裝kinect
kinect硬體的安裝簡單,購買回來的設備按照說明書的接線方式就可以完成,在此就不贅述,主要講述SDK和驅動的安裝,
首先,前往微軟官網下載Kinect for Windows SDK 2.0,

完成后就可以安裝,基本上都是默認操作,安裝完成后,電腦上就會多出三個東西,如下,

這三個軟體,各有用處,目前我用到的只有SDK Browser v2.0和Kinect Studio v2.0,另外一個還有沒摸索到它的用途,先暫且不管,另外這兩個軟體在測驗kinect連接是否成功時,可用作測驗,
1.2測驗kinect是否連接成功
kinect必須連接USB3.0,首次連接,需要安裝驅動,可以在設備管理器中檢查kinect的驅動是否安裝好,因為我是先連接的kinect,后安裝的SDK,所以手動安裝了驅動,但是看到網上有些大佬說安裝SDK后就不需要再手動更新驅動,所以自行辨別,如果安裝了SDK還是沒有驅動就手動更新驅動就可,
驅動安裝完成后就可以進行測驗,之前安裝的kinect的SDK時出現的軟體就可以派上用場了,
-
kinect studio
打開kinect studio后顯示的界面如下所示,

單擊左上角的“Not connect”左邊的圖示,就可以連接到kinect,結果如下(如果沒有反應,檢查下硬體是否連接好以及前面的程序是否有遺漏),

這個界面有些其他的作用,大家如有需要自行探索, -
SDK Browser v2.0
這個軟體是一個很有作用的工具,里面有很多開發樣例可以參考,大致界面如下,

首先我們介紹一下使用這個軟體進行測驗kinect的連接狀況,點擊Kinect Confuguration Verifier這一欄右下角的“Run”,

上面是我的運行結果,最好的狀態是所有項都是綠√,但我這也能用,我就沒有管那么多(感覺是電腦本身的問題),到此基本上都測驗完成了,可以快快樂樂地使用自己的kinect了,
此外在介紹下這個軟體的作用,里面有一些很有意思的例程,大家根據個人喜好,自由測驗,我這里就舉一個例子,如下,

運行結果如下(我的腳被桌子擋住了,所以不是粗紅線,嘿嘿!)

2 OpenCVSharp下載與配置
OpenCV是在影像處理方面是一款比較好用的工具,具體多好用大家心里就好,但是OpenCV并不支持C#語言,所以在使用C#語言的時候多有不便,于是OpenCVSharp就誕生了,
在C# 開發環境下加入OpenCVSharp開發包其實也并不難,詳細可見下面這位大佬的文章,我老老實實按照他的步驟,完美的用上了OpenCVSharp,
在C#中使用OpenCV(使用OpenCVSharp)
說一下自己在配置程序的感受,在VS中配置OpenCVSharp的第二這種方式,下載OpenCVSharp之后手動配置,確實比較頭大,網上各類包齊飛,比較雜亂,使用第一種方式直接配置好,非常方便,就是不翻墻的話,比較慢,容易失敗,大家可以選擇合適自己的方式吧!我在使用第二種方式的時候也遇到了一些錯,這里給大家分享一下解決辦法,
3 VS2015+OpenCVSharp+kinect v2.0采集影像并顯示
3.1 參考工具包
在上一節中已經將OpenCVSharp的工具包匯入到VS中,本節只講述如何參考kinect的開發包,具體步驟為:
【解決方案資源管理器】→右擊【參考】→【添加參考】→勾選【拓展】中關于kinect的開發包


完成之后,在【解決方案資源管理器】中的參考就包含這些:

完成參考后就可以進行開發了,
3.2應用:kinect采集影像并顯示
using System;
using Microsoft.Kinect;
using OpenCvSharp;
namespace kinect11_8
{
class Program
{
static void Main(string[] args)
{
KinectSensor _Sensor = null;
ColorFrameReader _Reader = null;
//獲取kinect
_Sensor = KinectSensor.GetDefault();
if (!_Sensor.IsOpen)
{
Console.WriteLine("正在打開攝像頭!");
_Sensor.Open();
}
if (_Sensor != null)
{
//打開讀取器
_Reader = _Sensor.ColorFrameSource.OpenReader();
//定義幀的描述
var frameDesc = _Sensor.ColorFrameSource.FrameDescription;
int iHeight = frameDesc.Height;
int iWidth = frameDesc.Width;
//OpenCVSharp資料預處理
Mat mImg = new Mat(iHeight, iWidth,MatType.CV_8UC4);
int tmp = iWidth * iHeight * 4 * sizeof(byte);
uint uBufferSize = (uint) tmp;
Cv2.NamedWindow("Color Map");
Console.WriteLine("獲取影像中!");
while (true)
{
if (_Reader != null)
{
//獲取最新的影像
var frame = _Reader.AcquireLatestFrame();
if (frame != null)
{
//將獲取到的資料儲存到mImg.Data中
frame.CopyConvertedFrameDataToIntPtr(mImg.Data, uBufferSize, ColorImageFormat.Bgra);
//顯示影像
Cv2.ImShow("Color Map", mImg);
//釋放幀
frame.Dispose();
frame = null;
}
else
{
Console.WriteLine("未獲取到影像!");
}
}
//任意鍵退出
if (Cv2.WaitKey(30) != -1)
{
break;
}
}
}
//關閉攝像頭
_Sensor.Close();
}
}
}
測驗效果如下:

4 結語
第一次寫博客,有不好的地方多多包涵,也希望大家對我說的做的不好的地方多多指點!
之后的作業也會陸續更新,需要的朋友多多關注,十分感謝!
最后給大家推薦一下kinect學習個人覺得比較有用的網站:
Kinect for windows微軟中國體感官方網站(里面很多官網資料,可下載)
Kinect for Windows
配置Kinect2.0+Unity5.6開發環境
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/211701.html
標籤:其他
上一篇:數字影像處理實驗五
