【问题标题】:shoulder detection on a segmented image分割图像上的肩部检测
【发布时间】:2015-06-22 08:32:06
【问题描述】:

作为输入,我有一个上半身的分段图像,我试图从这个图像中检测肩膀。 我通过一个阈值来最小化该区域,该阈值由头部大小和肩宽之间的简单已知比率计算得出。

现在我有了肩膀区域,对其进行了边缘检测。 现在我需要找到肩膀的点。 有没有快速检测肩部曲线的方法?

我正在使用 Matlab。

这是我的输入图像:

【问题讨论】:

  • “我需要曲线点”是什么意思?您能否附上一些图片来展示您拥有什么以及您想要获得什么?
  • @Mike'Pomax'Kamermans 已编辑
  • 啊哈!看来您可能陷入了询问an XY problem question 的陷阱。看起来你实际上只是想找到双肩的对齐线,但要做到这一点,你要问的是如何做你已经想到的方法,而不是问如何实现你实际的目标一开始就想做。如果这是真的,那么完全值得重新措辞和重新标记您的问题以反映真正的需求。
  • @Mike'Pomax'Kamermans 谢谢你告诉我这件事!以一种好的方式编辑了我希望的问题...

标签: matlab image-processing detection curve bezier


【解决方案1】:

贝塞尔曲线只是曲线的数学描述(线性插值,使用控制点)。 它不是曲线追踪器。

如果您需要贝塞尔曲线描述,则需要在贝塞尔曲线模型和数据之间进行最佳拟合。在开始之前,您可能应该尝试一下贝塞尔曲线,以了解它们的工作原理。

请看这里:http://www.mathworks.com/matlabcentral/fileexchange/33828-generalised-bezier-curve-matlab-code 用于贝塞尔曲线渲染,在 matlab 中。 当您提供一些控制点时,它会显示贝塞尔曲线。

有几种方法可以将贝塞尔曲线实际拟合到一组数据,这里是 matlab 的一种(使用最小二乘法)。 http://www.mathworks.com/matlabcentral/fileexchange/15542-cubic-bezier-least-square-fitting

它有时会很好,有时会失败,这是由于最小二乘法和使用的统一参数化。它应该可以解决您的肩部问题。

您需要提取边缘数据,作为数据点,但这应该是微不足道的

【讨论】:

  • 感谢您的回答!如果有更好更快的方法,请给我一个链接以阅读它
  • 曲线的选择,真的取决于应用。拟合算法取决于实时要求与准确性。在不知道应用程序上下文或要求的情况下,此建议将是猜测。真正的问题是,你需要曲线做什么?
  • 一个用于检测不良坐姿的应用程序。从肩膀开始,计算创建直线的两个肩点的斜率和角度,如果它比 15 度宽,它会提醒用户。每 5 秒发送一帧
  • 所以你需要确定一些事情。您需要多久拍摄一次图像,以及检测不良姿势需要多快。 (比频率快,但你需要比那更快吗?)。你将如何在数学上模拟一个好的姿势? - 低阶多项式通常是最快的表示,这是否足够好?
  • 通常你需要一个参考(良好的姿势)来确定当前的姿势是否不好;)
猜你喜欢
  • 2023-03-08
  • 2013-08-28
  • 2012-10-09
  • 1970-01-01
  • 2022-01-08
  • 2017-07-25
  • 2017-12-18
  • 2013-08-28
  • 1970-01-01
相关资源
最近更新 更多