本代码使用 OpenCV 库中的 fillPoly 函数来填充一个多边形的区域,以创建一个掩码 (mask)。

fillPoly 函数的第一个参数是要填充的图像或掩码,第二个参数是需要填充的多边形的顶点坐标。在此代码中,box 是一个四边形的顶点坐标,reshape 函数将其转换为 1 行 n 列的二维数组,astype 函数将其转换为整数类型。最后一个参数是填充颜色,这里是 1,表示将多边形区域填充为白色。

cv2.fillPoly(mask, box.reshape(1, -1, 2).astype('int32'), 1)

代码解释:

  • cv2.fillPoly(mask, points, color): fillPoly 函数用于填充多边形区域。
    • mask: 要填充的图像或掩码。
    • points: 多边形的顶点坐标,需要是一个二维数组,其中每一行表示一个顶点坐标。
    • color: 填充颜色。
  • box.reshape(1, -1, 2): 将 box 数组重塑为 1 行 n 列的二维数组,其中 n 是 box 数组的长度。
  • astype('int32'): 将 box 数组转换为整数类型。
  • 1: 填充颜色,这里是 1,表示白色。

示例:

假设 box 是一个包含四边形顶点坐标的数组:

box = np.array([[10, 10], [20, 10], [20, 20], [10, 20]])

然后,使用 fillPoly 函数填充这个四边形区域:

mask = np.zeros((30, 30), dtype=np.uint8)
cv2.fillPoly(mask, box.reshape(1, -1, 2).astype('int32'), 1)

注意:

  • mask 应该是一个与 box 坐标范围匹配的图像或掩码。
  • fillPoly 函数会覆盖 mask 中与多边形区域重叠的像素。

总结:

cv2.fillPoly() 函数是 OpenCV 中一个强大的工具,用于创建掩码或填充图像中特定区域。通过了解其参数和用法,您可以轻松地创建自定义掩码并进行图像处理操作。

OpenCV fillPoly() 函数详解:创建掩码填充多边形

原文地址: https://www.cveoy.top/t/topic/mVwg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录