標籤:int .com rgs send 格式 detail idt maps pycon
網上基於kinect2.0 用C#語言編寫的小程式太少了
下面的連結上C#語言的一些基礎開發,對於什麼都不會的最好手把手敲一遍
http://blog.csdn.net/app_12062011/article/details/52665048
使用kinect2.0 要求環境如下:
系統win8以上
Usb介面3.0
Direct11 以上
1.建立一個WPF應用程式,首先肯定要添加應用 Microsoft.Kinect
2.在WPF 在Grid中 添加一個控制項
<Image x:Name="image"/>
3.後端代碼如下
public partial class MainWindow : Window
{
private KinectSensor kinect = null;
private ColorFrameReader colorFrame = null;
private WriteableBitmap colorBitmap = null;
private FrameDescription colorFrameDescription = null;
private Int32Rect colorBitmapRect;
private int colorBitmapStride;
byte[] pixelData = null;
public MainWindow()
{
InitializeComponent();
this.kinect = KinectSensor.GetDefault();
this.colorFrame = kinect.ColorFrameSource.OpenReader();
this.colorFrame.FrameArrived += colorFrame_FrameArrived;
this.colorFrameDescription = this.kinect.ColorFrameSource.CreateFrameDescription(ColorImageFormat.Bgra);
pixelData = new byte[colorFrameDescription.LengthInPixels*4];
//按照Bgra格式設定資料幀的描述資訊(B:Blue,G:Green,R:Red,A:Alpha)
// 1920*1080 彩色映像
this.colorBitmap = new WriteableBitmap(colorFrameDescription.Width, colorFrameDescription.Height, 96.0, 96.0, PixelFormats.Bgr32, null);
//根據資料幀的寬高建立colorBitmap的執行個體
this.colorBitmapRect = new Int32Rect(0, 0, this.colorBitmap.PixelWidth, colorBitmap.PixelHeight);
this.colorBitmapStride = this.colorFrameDescription.Width * 4;
image.Source = this.colorBitmap;
this.kinect.Open(); //啟動kinect網路攝影機
}
void colorFrame_FrameArrived(object sender, ColorFrameArrivedEventArgs e)
{
using (ColorFrame frame = e.FrameReference.AcquireFrame())
//建立一個ColorFrame的執行個體frame儲存送過來的幀,通過using保證走完函數後及時釋放相應資源
{
if (frame != null)
{
frame.CopyConvertedFrameDataToArray(this.pixelData, ColorImageFormat.Bgra);
for (int i = 0; i < pixelData.Length; i +=4) //看來bgra是佔4位的
{
pixelData[i] = 0x00;//關閉藍色通道
// pixelData[i + 1] = 0x00;//關閉綠色通道
pixelData[i + 2] = 0x00;//關閉紅色通道
}
this.colorBitmap.WritePixels(this.colorBitmapRect, this.pixelData, this.colorBitmapStride, 0);
}
}
}
開啟之後效果如下(只留下綠色通道)
kinect2.0 基礎篇第一篇 用C#在Visual Studio上編寫關閉彩色映像的三色通道的某個通道