我正在使用手势检测来检测手势,手势又触发方法调用以保存图像。以下是MainWindow的C#代码,它使用Kinect SDK中的示例中的GestureDetect
和GestureResult
类。我想要做的是从result
获取GestureDetect
的更新值。
public MainWindow()
{
kinectSensor = KinectSensor.GetDefault();
this.kinectSensor.IsAvailableChanged += this.Sensor_IsAvailableChanged;
Application.Current.MainWindow.WindowState = WindowState.Maximized;
kinectSensor.Open();
this.StatusText = this.kinectSensor.IsAvailable ? Properties.Resources.RunningStatusText
: Properties.Resources.NoSensorStatusText;
this.bodyFrameReader = this.kinectSensor.BodyFrameSource.OpenReader();
this.choice = new List<bool>();
this.bodyFrameReader.FrameArrived += this.Reader_BodyFrameArrived;
_backgroundRemovalTool = new BackgroundRemovalTool(kinectSensor.CoordinateMapper);
_reader = kinectSensor.OpenMultiSourceFrameReader(FrameSourceTypes.Color | FrameSourceTypes.Depth | FrameSourceTypes.BodyIndex);
_reader.MultiSourceFrameArrived += Reader_MultiSourceFrameArrived;
this.gestureDetectorList = new List<GestureDetect>();
InitializeComponent();
//GestureDetect detector = new GestureDetect(this.kinectSensor);
// 2) Initialize the background removal tool.
int maxBodies = this.kinectSensor.BodyFrameSource.BodyCount;
for (int i = 0; i < maxBodies; ++i)
{
GestureResult result = new GestureResult(i, false, false, 0.0f);
GestureDetect detector = new GestureDetect(this.kinectSensor, result);
this.gestureDetectorList.Add(detector);
this.bodyFrameReader.FrameArrived += this.Reader_BodyFrameArrived;
choice.Add(result.detected);
}
}
choice[i]
的值仍然为false,并且gestureDetectorList[i].result
对于正文为空。我哪里错了?
答案 0 :(得分:0)
好的,我还是不知道自己哪里出错了。我所做的是通过创建从'GestureDetect&#39;中更新MainWindow
中的标志的方法来解决这个问题。功能和使用这些标志来呼叫我的捕获&#39;方法。
这是一个可行的解决方法。如果有人能告诉我我要去哪儿,虽然我真的很感激,因为我无法弄清楚。
感谢。