【问题标题】:Human Detection using edge detection使用边缘检测的人体检测
【发布时间】:2014-02-19 19:38:18
【问题描述】:

我正在尝试使用背景减法在此dataset 中检测人体的确切轮廓。在做了一些阈值处理后,我得到了分裂的斑点,所以我查看了Steve 的本教程,但现在我得到了人体以外的斑点,如下所示

原来是这样的

从背景中减去它后,背景被认为是视频的第一帧,所以从原始图像中减去它后,我得到以下图像

所以我做了基本的阈值处理,得到了以下图像,它是从其他区域分割出来的

使用史蒂夫的方法我得到了这个

但这包含很多不是人体一部分的区域,任何建议如果以某种方式或使用边缘我可以获得人体的良好斑点。

编辑

@lennon310 要求我上传彩色图片,所以这里是

@NKN 要求我上传同一张图片的边缘信息,所以这里是

【问题讨论】:

  • 您的原始图像是灰色还是 rgb?
  • 它的rgb,我把它转成灰度了。
  • 我猜这个问题是由阈值引起的,你能与MATLAB中的edge命令和canny或sobel等方法进行比较吗?
  • 你也可以上传原始 rgb 吗?
  • 请查看问题的更新版本。

标签: matlab image-processing computer-vision matlab-cvst


【解决方案1】:

尝试使用 vision.ForegroundDetector 对象,而不是从字面上减去背景,它是计算机视觉系统工具箱的一部分。它实现了混合高斯自适应背景建模,它可以给你一个更清晰的分割。

话虽如此,您不太可能获得“精确”的轮廓。有些错误是不可避免的。

【讨论】:

    【解决方案2】:

    在您的结果图像中,您有两种类型的黑色区域。一个是移动的,另一个是静止的。 所以当你想要填充人体时,你必须只选择运动区域,为此,我建议通过添加光流技术来分割你的图像,以知道运动区域在哪里。 这是一个有趣的教程,可以做你需要做的事情: http://docs.opencv.org/trunk/doc/py_tutorials/py_video/py_lucas_kanade/py_lucas_kanade.html

    【讨论】:

      猜你喜欢
      • 2016-09-12
      • 2014-03-30
      • 2019-09-18
      • 2021-03-01
      • 1970-01-01
      • 2014-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多