我正在用Kinect开始一个项目。用kinect获得鼠标点击深度
我想要做的第一件事就是让用户点击一个对象,然后程序返回该对象距离kinect有多远。
我的代码:
private void colorImg_MouseDown(object sender, MouseButtonEventArgs e)
{
double distance;
System.Windows.Point position = Mouse.GetPosition(colorImg);
distance = position.X + (position.Y * 640);
int af = (int)distance;
int depth = depthPixels[af].Depth;
System.Windows.Forms.MessageBox.Show("" + depth);
}
但它总是返回0
,问题是,deptPixels
的深度属性总是从一开始就0
。我在这条线上检查了一个断点,对于每个像素,深度为0
。但为什么?
this.depthPixels = new DepthImagePixel[this.sensor.DepthStream.FramePixelDataLength];
任何帮助,欢迎!
你是'深度像素'不断更新?如果他们只更新一次,例如在你的类初始化,然后我希望数据将始终保持不变,可能是默认值(0)。 – 2014-12-03 15:54:43
对于愚蠢的问题,我很抱歉,是否需要在我的sensor_AllFramesReady void中放入代码(depthPixels = new DepthImagePixel [this.sensor.DepthStream.FramePixelDataLength];)。 (不工作)你会如何更新? – simon 2014-12-03 16:00:25
可以放弃它! Disclamer:从未与Kinect合作过。 – 2014-12-03 16:09:44