Python如何使所有轮廓的外部为黑色



我使用掩码RCNN来检测图像中的对象,然后使用对象掩码在图像上绘制轮廓,如图像中的轮廓

然后我想让这些轮廓外的每个像素都是黑色的,就像这样:黑色背景的轮廓那么有没有一种简单的方法可以做到这一点呢?

绘制轮廓时使用cv2.FILLED获取遮罩并应用于原始图像。例如:

black_canvas = np.zeros_like(img_gray)
cv2.drawContours(black_canvas, contours, -1, 255, cv2.FILLED) # this gives a binary mask 

假设您有轮廓,您可以通过首先创建轮廓的遮罩图像,然后使用该遮罩执行逐位和操作来获得结果。

maskImage = np.zeros(img.shape, dtype=np.uint8)
cv2.drawContours(maskImage, Contours, -1, (255, 255, 255), -1)
newImage = cv2.bitwise_and(img, maskImage)

最新更新