6. 填充轮廓 现在你可以填充检测到的轮廓。这里我们以红色填充轮廓: filled_image=np.zeros_like(image)# 创建与原始图像相同大小的全黑图像cv2.drawContours(filled_image,contours,-1,(0,0,255),thickness=cv2.FILLED)# 填充轮廓,使用红色 1. 2. 7. 显示结果 最后,显示结果图像并保持直到用户关闭窗口: cv2....
步骤四:填充轮廓 最后,我们可以使用drawContours()函数来填充轮廓。我们可以指定填充的颜色、轮廓列表和轮廓索引。下面是代码示例: # 创建一个空白图像filled_image=np.zeros_like(image)# 填充轮廓cv2.drawContours(filled_image,contours,-1,(0,255,0),-1) 1. 2. 3. 4. 5. 步骤五:显示结果 最后,我们可以...
cv2.drawContours(img_copy,contours,0,[0,0,255],-1)#绘制轮廓,绘制轮廓会改变输入的图像,最好备份一份原图。 #print(len(contours)) #轮廓面积:指每个轮廓中所有的像素点围成区域的面积,单位是像素。可以用来分析每个轮廓的隐含信息,比如通过轮廓面积区分物体大小来识别物体。 # 在查找到轮廓后,可能会有很多...
我想检测一个球的轮廓,这个物体将永远是一个球,但我有一个物体在中间,可以阻挡球的一部分,这是我的当前情况:(https://i.sstatic.net/gwxnsVTI.png) 我做得很好,所以在这种情况下,双方都有大量的球,但当球减少时,效果就不那么好了:(https://i.sstatic.net/gYiZ9bCI.png) 我知道我可以更改代码的参数,...
第二个参数是轮廓本身,在Python中是一个list。 第三个参数指定绘制轮廓list中的哪条轮廓,如果是-1,则绘制其中的所有轮廓。后面的参数很简单。其中thickness表明轮廓线的宽度,如果是-1(cv2.FILLED),则为填充模式。绘制参数将在以后独立详细介绍。 补充:
# 这里一定要使用参数-1, 绘制填充的的轮廓 cv2.drawContours(mask, [cnt], 0, 255, -1) pixelpoints = np.transpose(np.nonzero(mask)) 1.7 最大值和最小值及它们的位置 min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(imgray, mask = mask) ...
第一个参数是要绘制轮廓的目标图像,第二个参数是应作为 Python 列表传递的轮廓,第三个参数是我们要绘制的轮廓的索引(要绘制所有轮廓,请传递 - 1)。如果厚度≥0,则在图像中绘制轮廓轮廓,否则,填充轮廓所包围的区域。可选参数 hierarchy 和 max-level 指定绘制轮廓的最高层次级别。现在,我们通过一个例子来...
image: 需要绘制轮廓的目标图像,注意会改变原图 contours: 轮廓点,上述函数cv2.findContours()的第一个返回值 contourIdx: 轮廓的索引,表示绘制第几个轮廓,-1表示绘制所有的轮廓 color: 绘制轮廓的颜色 thickness:(可选参数)轮廓线的宽度,-1表示填充 lineType:(可选参数)轮廓线型,包括cv2.LINE_4,cv2.LINE_8(默...
第一个参数是指明在哪幅图像上绘制轮廓;image为三通道才能显示轮廓 第二个参数是轮廓本身,在Python中是一个list; 第三个参数指定绘制轮廓list中的哪条轮廓,如果是-1,则绘制其中的所有轮廓。后面的参数很简单。其中thickness表明轮廓线的宽度,如果是-1(CV2.FILLED),则为填充模式。
先膨胀再腐蚀。它经常被用来填充前景物体中的小洞,或者前景物体上的小黑点。 closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel) cv2.MORPH_CLOSE表示进行开运算。 1.5 梯度计算 梯度= 膨胀 - 腐蚀 即得到结果类似图像的轮廓。 gradient = cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel) ...