【问题标题】:Detecting open fist and close fist检测开拳和合拳
【发布时间】:2011-06-15 17:15:17
【问题描述】:

我尝试遵循该算法,但它不起作用。我不知道有什么问题。 有人可以帮助我吗?

Where can I learn/find examples of gesture recognitions streamed from Kinect, using OpenCV?

Image<Gray, Byte> dest = new Image<Gray, Byte>(this.bitmap.Width, this.bitmap.Height);

CvInvoke.cvThreshold(src, dest, 220, 300, Emgu.CV.CvEnum.THRESH.CV_THRESH_BINARY);
Bitmap nem1 = new Bitmap(dest.Bitmap);
this.bitmap = nem1;

Graphics g = Graphics.FromImage(this.bitmap);

using (MemStorage storage = new MemStorage()) //allocate storage for contour approximation
{
    for (Contour<Point> contours = dest.FindContours(); 
        contours != null; 
        contours = contours.HNext)
    {
        g.DrawRectangle(new Pen(new SolidBrush(Color.Green)),contours.BoundingRectangle);

        IntPtr seq = CvInvoke.cvConvexHull2(contours,storage.Ptr, Emgu.CV.CvEnum.ORIENTATION.CV_CLOCKWISE, 0);
        IntPtr defects = CvInvoke.cvConvexityDefects(contours, seq, storage);
        Seq<Point> tr= contours.GetConvexHull(Emgu.CV.CvEnum.ORIENTATION.CV_CLOCKWISE);

        Seq<Emgu.CV.Structure.MCvConvexityDefect> te = contours.GetConvexityDefacts(storage, Emgu.CV.CvEnum.ORIENTATION.CV_CLOCKWISE);
        g.DrawRectangle(new Pen(new SolidBrush(Color.Green)), tr.BoundingRectangle);
    }
}

【问题讨论】:

    标签: c# kinect gesture-recognition


    【解决方案1】:

    如果没有一些图形数据,就很难提供帮助(我也没有合适的硬件)。无论如何,我建议你两件事:

    • 因为它是一个图形过程,所以调试一切保存或显示任何中间步骤(阈值、轮廓、凸包)
    • 更改为更简单的方法。例如:
      1. 应用阈值(生成您的手的 0/1 地图)
      2. 对于每一行,计数 0/1 个转换
      3. 测试最大转换次数:即,如果超过 7 次,则双手张开

    让我知道它是否有效:-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-27
      相关资源
      最近更新 更多