我试图找出确切的长度和宽度的轮廓。基本上我试图找出划痕和他们的确切长度。参考下面的图片:
谁能告诉我如何找到这些裂缝的确切厚度?我已经尝试了boundingrect()函数来检索宽度和高度,但这并不符合目的,因为它不准确的划痕线。我在想,如果我能找到绘制轮廓的划痕实现,因为drawcontours()能够准确地绘制它们。有人吗?
mnemlml81#
我不认为有一个解决方案可以让你从盒子里得到你想要的东西,但是因为这些划痕只是两条非常接近的线,你可以通过使用轮廓的弧长特征来得到你需要的东西:
perimeter = cv2.arcLength(cnt,True) length = perimeter / 2;
您可以使用轮廓的其他功能和属性来尝试自己计算精确的长度。像极值点和像素点这样的属性会浮现在脑海中。您可以在documentation中找到有关这些的更多信息。
c90pui9n2#
好的,首先你可以使用cvonize将你的涂鸦细化成一条线,然后使用cv2.arclength来计算线的长度。
2条答案
按热度按时间mnemlml81#
我不认为有一个解决方案可以让你从盒子里得到你想要的东西,但是因为这些划痕只是两条非常接近的线,你可以通过使用轮廓的弧长特征来得到你需要的东西:
您可以使用轮廓的其他功能和属性来尝试自己计算精确的长度。像极值点和像素点这样的属性会浮现在脑海中。您可以在documentation中找到有关这些的更多信息。
c90pui9n2#
好的,首先你可以使用cvonize将你的涂鸦细化成一条线,然后使用cv2.arclength来计算线的长度。