python中的opencv:有没有一种简单的方法来计算轮廓的曲率?

时间:2015-09-16 01:33:28

标签: python opencv image-processing computer-vision

我知道您可以使用轮廓的瞬间轻松计算质心和轮廓区域。有没有一种快速的方法来计算python中opencv的轮廓曲率?

由于

2 个答案:

答案 0 :(得分:0)

您可以使用convexityDefects所述的subprocess.check_output(*popenargs, **kwargs)功能。对于python使用,请参阅此here

答案 1 :(得分:0)

在OpenCV中,

  

a contour is a Numpy array of (x,y) coordinates of boundary points of the object

例如在

中描述了用于计算曲率的方法

Driscoll MK, McCann C, Kopace R, Homan T, Fourkas JT, et al. (2012) "Cell Shape Dynamics: From Waves to Migration." PLoS Comput Biol 8(3): e1002392. doi:10.1371/journal.pcbi.1002392

他们有一个由400个点组成的轮廓(他们称之为边界点)和:

  

在每个边界点,我们通过拟合计算边界曲率   该边界点的圆圈和10的两个点   边界点远离它。边界曲率的大小   然后定义为该圆半径的倒数。

另见this video from the above paper

我不熟悉Python,所以我不能建议你进行圆插补功能;无论如何,为了使圆圈适合三个点,您可以按照Weisstein, Eric W. "Circle." From MathWorld--A Wolfram Web Resource中的(25)到(34)中的公式。

取自https://math.stackexchange.com/a/1215914/10799