[英]Merge multiple contour using opencv python
当我在这张图片上应用 OpenCV findContours() function 时,我发现它创建了两个单独的轮廓。 我正在尝试合并这两个轮廓以形成一个轮廓。 我的最终目标如下:
请忽略这些点。 我用注释工具创建了它。 最终的轮廓可能与给定的图像略有不同,但与此图像有些相似。 最重要的部分是获得轮廓的连续形状。
我在下面用一些代码和图像来总结我的工作。
第一步(寻找轮廓):
使用 findContours() function 我得到了如下所示的轮廓:
contour = cv2.findContours(img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img, [contour], -1, (0,0,255), 2)
第二步(合并轮廓):
然后我尝试使用 np.vstack() function 合并两个轮廓并将其绘制在图像上。 基本上,我已将两个轮廓坐标合二为一。
contours_combined = np.vstack(contour)
cv2.drawContours(img, [contours_combined], -1, (0,0,255), 2)
使用此代码,我得到了如图所示的轮廓:
第三步(OpenCV 凸包的使用):
然后我使用堆叠的轮廓创建了凸包。
hull = cv2.convexHull(contours_combined)
cv2.polylines(img, [hull], True, (0,0,255), 2)
我得到了下面的图片:
我使用了 cv2.morphologyEx() 但不幸的是,这也没有帮助我实现我的目标(查看下图)。
如何获得第一张图片中显示的单个轮廓?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.