我必须使用opencv实现整个人体的轮廓检测(从脚到头,在几个姿势,如举手等)。我设法编译并运行了在这里找到的代码https://gist.github.com/yoggy/1470956,但它只在身体周围绘制了一个矩形,而不是确切的轮廓。有人可以帮助我识别和显示轮廓本身吗?
谢谢!!
我必须使用opencv实现整个人体的轮廓检测(从脚到头,在几个姿势,如举手等)。我设法编译并运行了在这里找到的代码https://gist.github.com/yoggy/1470956,但它只在身体周围绘制了一个矩形,而不是确切的轮廓。有人可以帮助我识别和显示轮廓本身吗?
谢谢!!
恐怕这个问题的答案是:
没有算法可以完美地做到这一点。
计算机视觉还没有发展到那种程度。看看最近在 CVPR、PAMI 上的论文,你会发现大多数算法都是“矩形”,或者更具体地说,是基于边界框的,在人类标记和算法检测方面。
确实,您可以在边界框中找到轮廓。然而,计算机只是不知道哪个轮廓属于指定对象。
我建议您搜索“人体姿势估计”以获取更多信息。
一种可能有效的方法是背景减法:
http://docs.opencv.org/3.1.0/db/d5c/tutorial_py_bg_subtraction.html
这适用于视频,但也可能适用于单个图像,您处于受控(固定摄像机)环境中,在该环境中您拥有姿势图像以及背景图像,但没有人在场。
您可以在返回的边界框中使用函数 findCountors:
http://docs.opencv.org/doc/tutorials/imgproc/shapeescriptors/find_contours/find_contours.html