如何使黑色以外的确切形状的cv2.polylines?

2024-04-26 03:13:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用cv2.MSER\u create来寻找图像的稳定区域。在我得到外壳并将cv2.polylines放在图像上之后。问题:如何使多段线外部变为黑色,如下所示?你知道吗

Example of before and after filtering

fig, axes = plt.subplots(1, numb, figsize=(12,2.5))
for i in range(numb):
    vis_copy = vis.copy()
    mser = cv2.MSER_create(_min_area = min_a, _max_area=max_a)
    gray = cv2.cvtColor(vis_copy, cv2.COLOR_BGR2GRAY)
    gray_blur = gray#cv2.GaussianBlur(gray, (5,5), 0)

    regions, _ = mser.detectRegions(gray_blur)
    c = sorted(regions, key=cv2.contourArea, reverse=True) 
    hulls = [cv2.convexHull(p.reshape(-1,1,2)) for p in c]
    cv2.polylines(vis_copy, hulls, 1, (0, 255, 0))
    axes[i].imshow(vis_copy)
    axes[i].set_title('Min_a =' +  str(min_a) )
    axes[i].set_xticks([])
    axes[i].set_yticks([])    
    min_a = min_a + step_a

Tags: in图像forcreatemincv2viscopy