【问题标题】:Finding Shoulder and Neck points of Body寻找身体的肩颈点
【发布时间】:2016-12-31 13:16:48
【问题描述】:

我需要找到图像的肩点(人体)需要帮助如何识别坐标,我可以使用 imagemagick 获得人体的边缘,但很难找到肩点 A、B 和颈部C点。

原图

获取边缘后的图像

【问题讨论】:

  • 您能否准确定义您提供的图像上的 a、b 和 c 点是什么
  • @AmitayNachmani 更新了我的问题。

标签: linux image-processing imagemagick edge-detection


【解决方案1】:

从上到下逐行扫描边缘图像。对于每一行,计算第一个边缘像素到最后一个边缘像素之间的长度。

长度变化较大的那一行是C点。

在你找到 C 点后,当你遇到带有肩点的行时,当斜率变化非常剧烈时,长度开始以线性方式上升,斜率 m。您可能需要为每一边单独计算这个斜率。

【讨论】:

    【解决方案2】:

    尝试使用 Image Magick 形态学方法处理输入图像。详细示例为here。下面的脚本将缩小图像的大小并将图像阈值设置为 2bpp 位图,然后它会尝试关闭所有间隙,并使形状变圆。然后创建一个骨架,其中包含有关我们形状的一般信息。最后使用命中和未命中内核搜索特定的行结束。在这种情况下,对角线。输出是带有一组点的图像。但是,您可以使用 Image Magick 的 identify 打印像素位置。我还假设您或多或少知道肩膀在哪里,并且可以丢弃图像其他部分的点。可以从 A 和 B 推断出 C 点,识别颈部。

    convert -resize 25% input.jpg -negate -normalize -colorspace gray -threshold 20% -trim +dither v.png
    convert v.png -morphology Close Disk x.png 
    convert x.png -morphology Thinning:-1 Skeleton:2 y.png 
    convert y.png -morphology HMT 'LineEnds:2;LineEnds:2>>' z.png
    

    我使用了 IM v.6.7.9,因为我对 v7 有一些问题。

    【讨论】:

      猜你喜欢
      • 2011-04-02
      • 1970-01-01
      • 2013-11-09
      • 1970-01-01
      • 1970-01-01
      • 2013-04-25
      • 2021-11-25
      • 1970-01-01
      • 2014-10-20
      相关资源
      最近更新 更多