OpenCV轮廓精确的宽度和长度

23c0lvtd  于 2023-10-24  发布在  其他
关注(0)|答案(2)|浏览(76)

我试图找出确切的长度和宽度的轮廓。基本上我试图找出划痕和他们的确切长度。参考下面的图片:

谁能告诉我如何找到这些裂缝的确切厚度?我已经尝试了boundingrect()函数来检索宽度和高度,但这并不符合目的,因为它不准确的划痕线。我在想,如果我能找到绘制轮廓的划痕实现,因为drawcontours()能够准确地绘制它们。有人吗?

mnemlml8

mnemlml81#

我不认为有一个解决方案可以让你从盒子里得到你想要的东西,但是因为这些划痕只是两条非常接近的线,你可以通过使用轮廓的弧长特征来得到你需要的东西:

perimeter = cv2.arcLength(cnt,True)
length = perimeter / 2;

您可以使用轮廓的其他功能和属性来尝试自己计算精确的长度。像极值点和像素点这样的属性会浮现在脑海中。您可以在documentation中找到有关这些的更多信息。

c90pui9n

c90pui9n2#

好的,首先你可以使用cvonize将你的涂鸦细化成一条线,然后使用cv2.arclength来计算线的长度。

相关问题