2015-06-22 96 views
0

作为输入,我有上身的分割图像,我试图从此图像中检测肩膀。 我通过由头部尺寸和肩宽之间的简单已知比率计算的阈值来最小化该区域。分割图像上的肩部检测

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

我正在使用Matlab。

这是我的输入图像:

enter image description here

+0

你是什么意思与“我需要的曲线点”?你能附上一些图片来证明你有什么,以及你想要得到什么吗? –

+0

@ Mike'Pomax'Kamermans编辑 –

+0

啊哈!看起来你可能陷入了问[XY问题]的陷阱(http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。它非常强烈地看起来像你实际上只是试图找到肩膀的对准线,但是要知道你在问怎么做你已经想到的方法,而不是问如何实现你的实际首先想做的事。如果那是真的,那完全值得重新说明并重新提出你的问题以反映真实的需求。 –

回答

1

Bezier曲线是曲线的只是一个数学描述,(线性插值,使用控制点)。 这不是曲线追踪器。

如果您需要贝塞尔曲线描述,则需要在贝塞尔曲线模型和数据之间进行最佳拟合。在你开始之前,你应该玩一下贝塞尔曲线,以了解它们如何操作。

请参阅: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

它有时会很好地工作,有时会失败,这是由于最小二乘法和使用统一参数化。它应该适用于你的肩膀问题。

你需要提取的边缘数据,如数据点,但应该是微不足道的

+0

谢谢你的回答!如果有更好的方法做到这一点,请给我一个链接来阅读它 –

+0

曲线的选择,实际上取决于应用程序。拟合算法取决于实时要求与准确性。在不知道应用程序上下文或要求的情况下,此建议可能是猜测。真正的问题是,你需要什么曲线? – Henrik

+0

检测不良坐姿的应用程序。从肩膀开始,计算创建直线和角度的两个肩部点的斜率,如果它比我们说15度更宽,则会警告用户。每5秒发一帧 –