저는 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];
도움이되었습니다.
'depthPixels'이 (가) 지속적으로 업데이트되고 있습니까? 광고가 한 번만 업데이트되면 귀하의 클래스 초기화에 다음 데이터가 항상 동일하고 아마 기본 (0)을 유지할 것이라고 기대했다. –
바보 같은 질문에 유감스럽게 생각합니다. 내 sensor_AllFramesReady void에 코드 (depthPixels = new DepthImagePixel [this.sensor.DepthStream.FramePixelDataLength];)를 넣어야합니까? (작동하지 않음) 어떻게 업데이트 하시겠습니까? – simon
전에 줄 수 있어요! Disclamer : Kinect와 함께 일한 적이 없습니다. –