我正在尝试计算图像中线条的粗糙度,并相信 cv2.convexHull 和 cv2.convexivityDefects 是要走的路。我遇到的问题是无法将线条收集到轮廓中,因为它们超出了图像边界。下面是原始图像和我能够从中形成的边缘。即使它们是开放的,有没有办法关闭形状或制作轮廓?或者有没有更好的方法来寻找粗糙度?
澄清一下,这些是我目前正在尝试使用的功能。我是图像处理的新手,所以我不知道哪些模块可以在这里提供帮助。
cnts = cv2.findContours(edges.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
hull = cv2.convexHull(cnt,returnPoints=True)
hullDefects = cv2.convexHull(cnt,returnPoints=False)
spiralDefects = cv2.convexityDefects(cnt, hullDefects)