First, download Kinect for Windows SDK and Kinect for Windows Developer Toolkit from http://www.microsoft.com/en-us/kinectforwindowsdev/Start.aspx then install them
ขั้นต่อไป สร้าง Windows Forms Application ใน Visual C#
Second, create Windows Forms Application on Visual C#
ไปที่ Solution Explorer คลิ๊กขวาที่ References แล้วเลือก Add Reference...
Go to Solution Explorer then right click at References and select Add Reference...
ไปที่แท็บ Browse แล้วไปที่ C:\Program Files\Microsoft SDKs\Kinect
Go to Browse tab then go to C:\Program Files\Microsoft SDKs\Kinect
เลือก Microsoft.Kinect.dll จาก v1.8\Assemblies\Microsoft.Kinect.dll
Select Microsoft.Kinect.dll from v1.8\Assemblies\Microsoft.Kinect.dll
ทำซ้ำสามข้อก่อนหน้านี้ แต่เลือก Microsoft.Kinect.Toolkit.dll จาก Developer Toolkit v1.8.0\Assemblies\Microsoft.Kinect.Toolkit.dll แทน Microsoft.Kinect.dll
Repeat last three steps but select Microsoft.Kinect.Toolkit.dll from Developer Toolkit v1.8.0\Assemblies\Microsoft.Kinect.Toolkit.dll instead of Microsoft.Kinect.dll
ในหน้าออกแบบของฟอร์ม เพิ่มคอมโพเนนต์ RichTextBox ชื่อ rtbMessages
In design of form, add RichTextBox component with named rtbMessages
ในโค้ดของฟอร์ม เพิ่มสองประโยคข้างล่าง
In code of form, add two statement below
- using Microsoft.Kinect;
- using Microsoft.Kinect.Toolkit;
ประกาศตัวแปรโกลบอลตามข้างล่าง
Define new global variable as follow- KinectSensorChooser _chooser;
ใส่โค้ดด้านล่างนี้ในเมธอดคอนสตรัคเตอร์ของฟอร์ม
Insert below code into constructor method of form- _chooser = new KinectSensorChooser();
- _chooser.KinectChanged += ChooserSensorChanged;
- _chooser.Start();
ใส่โค้ดด้านล่างนี้ในคลาสของฟอร์ม
Insert below code into class of form
- void ChooserSensorChanged(object sender, KinectChangedEventArgs e)
- {
- var old = e.OldSensor;
- StopKinect(old);
- var newsensor = e.NewSensor;
- if (newsensor == null)
- {
- return;
- }
- newsensor.SkeletonStream.Enable();
- newsensor.ColorStream.Enable(ColorImageFormat.RgbResolution640x480Fps30);
- newsensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);
- newsensor.AllFramesReady += SensorAllFramesReady;
- try
- {
- newsensor.Start();
- rtbMessages.Text = "Kinect Started" + "\r";
- }
- catch (System.IO.IOException)
- {
- rtbMessages.Text = "Kinect Not Started" + "\r";
- //maybe another app is using Kinect
- _chooser.TryResolveConflict();
- }
- }
- private void StopKinect(KinectSensor sensor)
- {
- if (sensor != null)
- {
- if (sensor.IsRunning)
- {
- sensor.Stop();
- sensor.AudioSource.Stop();
- }
- }
- }
- void SensorAllFramesReady(object sender, AllFramesReadyEventArgs e)
- {
- }
กดปุ่ม F5 บนคีย์บอร์ด เพื่อคอมไพล์และรัน
Press F5 on keyboard for compiling and running
No comments:
Post a Comment