如何找到最近的Kinect点及其坐标

时间:2013-10-29 12:25:07

标签: c# kinect kinect-sdk

我正在使用XBox-Kinect(Beta SDK)。

我尝试指示机器人从包含许多物体(bachelorthesis)的盒子中抓取物体,因为我需要找到最近的物体到kinect的最近点。我可以通过区域增长来定位整个对象,并找出机器人的抓点。

现在我对这个话题有两个问题:

  1. 如何找出这一点的x和y坐标? (我已经有了距离)
  2. 如何访问private byte[] FindMinimum(ImageFrame imageFrame) 按下按钮,找到最近的距离?
  3. 这是我的代码:

        void nui_DepthFrameReady(object sender, ImageFrameReadyEventArgs e)
        {
            image1.Source = e.ImageFrame.ToBitmapSource();
             byte[] Minumum = FindMinimum(e.ImageFrame);
        }
    
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            FindMinimum();
        }
    
        private byte[] FindMinimum(ImageFrame imageFrame)
        {
            int height = imageFrame.Image.Height;
            int width = imageFrame.Image.Width;
    
            Byte[] depthData = imageFrame.Image.Bits;
    
            Byte[] colorFrame = new byte[imageFrame.Image.Height * imageFrame.Image.Width * 4];
    
    
            int min = int.MaxValue, max = int.MinValue;
            for (int i = 0; i < depthData.Length; i += 2)
            {
                int dist = GetDistance(depthData[i], depthData[i + 1]);
                if (dist < min && dist > 0) min = dist;
                if (dist > max) max = dist;
            }
            textBox1.Text = Convert.ToString(min);
            return colorFrame;
        }
    
        private int GetDistance(byte firstFrame, byte secondFrame)
        {
            int distance = (int)(firstFrame | secondFrame << 8);
            return distance;
        }
    
        private void Window_Closed(object sender, EventArgs e)
        {
            nui.Uninitialize();
        }
    }
    

    }

0 个答案:

没有答案
相关问题