在图像上显示掩码、框和点的通用函数
- 背景介绍
- 函数实现与用途
- 1. 显示掩码
- 函数:`show_mask`
- 2. 显示边界框
- 函数:`show_box`
- 3. 在图像上显示点
- 函数:`show_points`
- 4. 综合显示框和点
- 函数:`show_points_and_boxes_on_image`
- 5. 显示掩码并返回图像
- 函数:`show_mask_on_image`
- 6. 显示流水线输出掩码
- 函数:`show_pipe_masks_on_image`
- 7. 辅助函数
- 函数:`fig2img`
- 8. 完整代码
- 示例应用
- 总结
背景介绍
在计算机视觉任务中,例如目标检测、实例分割和图像标注,通常需要在图像上叠加框(Bounding Boxes)、掩码(Masks)或关键点(Keypoints)进行可视化。这篇文章将介绍一组方便的 Python 函数,它们可以帮助我们快速地实现这些操作。本文的代码实现主要依赖 Matplotlib
、Pillow
和 NumPy
等流行库。
函数实现与用途
1. 显示掩码
函数:show_mask
功能:
在给定的图像上显示一个掩码,可以选择随机颜色或默认颜色。
代码解释:
if random_color:color = np.concatenate([np.random.random(3), np.array([0.6])], axis=0)
else:color = np.array([30 / 255, 144 / 255, 255 / 255, 0.6])
random_color
为True
时,生成随机颜色;否则,使用默认的蓝色半透明。- 将掩码与颜色合并后调用
ax.imshow()
绘制。
2. 显示边界框
函数:show_box
功能:
在图像上绘制边界框。
代码解释:
x0, y0 = box[0], box[1]
w, h = box[2] - box[0], box[3] - box[1]
ax.add_patch(plt.Rectangle((x0, y0), w, h, edgecolor='green', facecolor=