首页 > 解决方案 > 如何在 Python 中完成无效或不完整轮廓的路径

问题描述

您好,我正在使用以下图像使用 python blob 检测来检测芒果形状。

芒果形象

我正在使用以下代码

img = cv2.imread(name, -1)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imwrite(self.base + self.output + '_gray.jpg', gray)

edged = cv2.Canny(gray, 30, 200) 
cv2.imwrite(self.base + self.output + '_edge.jpg', edged)

(_, cnts, hierarchy) = cv2.findContours(edged, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
cnts.sort(key = cv2.contourArea)

我设法找到边缘,然后勾勒出边缘输出所遵循的轮廓

芒果边缘

现在,当我尝试绘制或裁剪最大轮廓时,实际问题出现了但是由于路径不完整,它被视为无效,因此数组中包含第二大轮廓,并且跳过了主要轮廓

我只是找不到修复路径或完成轮廓路径的方法

最终的裁剪输出如下,这是不需要的

在此处输入图像描述

标签: pythonpython-3.xedge-detectionopencv-pythonopencv-contour

解决方案


推荐阅读