OpenCV-绘制图形

文章目录

  • 所有相关接口验证demo以上传至仓库
  • 绘制线
  • 绘制矩形
  • 绘制圆
  • 绘制椭圆
  • 绘制多边形
  • 绘制填充多边形
  • 绘制文本

所有相关接口验证demo以上传至仓库

代码地址:https://gitee.com/norep/learn-opencv

绘制线

cv2.line(image, pt1, pt2, color, thickness=1, lineType=cv2.LINE_8, shift=0)
# cv2.line(graph, (30, 30), (150, 150), (190, 190, 190), 1, 1)

参数说明

  • image:一个 NumPy 数组,表示要绘制线条的图像。

  • pt1:一个元组 (x1, y1),表示线条的起点。

  • pt2:一个元组 (x2, y2),表示线条的终点。

  • color:一个元组 (b, g, r),表示线条的颜色。OpenCV 使用 BGR 格式。

  • thickness:一个整数,表示线条的厚度。如果设置为 1,则表示一个像素的厚度;如果设置为 2,则表示两个像素的厚度,以此类推。

  • lineType:一个整数,表示线条的类型。常见的类型包括 cv2.LINE_8、cv2.LINE_AA 等。cv2.LINE_8 表示使用 8 连接线,而 cv2.LINE_AA 表示使用抗锯齿线。

  • shift:一个整数,表示坐标中的小数位数。通常设置为 0。

返回值:

  • 函数不会返回任何值,而是直接在 image 数组上绘制线条

绘制矩形

cv2.rectangle(image, pt1, pt2, color, thickness=1, lineType=cv2.LINE_8, shift=0)
# cv2.line(graph, (30, 30), (150, 150), (190, 190, 190), 1, 1)

参数说明:

  • image:一个 NumPy 数组,表示要绘制矩形的图像。

  • pt1:一个元组 (x1, y1),表示矩形的左上角点。

  • pt2:一个元组 (x2, y2),表示矩形的右下角点。

  • color:一个元组 (b, g, r),表示矩形的颜色。OpenCV 使用 BGR 格式。

  • thickness:一个整数,表示矩形的厚度。如果设置为 1,则表示一个像素的厚度;如果设置为 2,则表示两个像素的厚度,以此类推。如果设置为负数,则表示填充矩形。

  • lineType:一个整数,表示矩形边界的类型。常见的类型包括 cv2.LINE_8、cv2.LINE_AA 等。cv2.LINE_8 表示使用 8 连接线,而 cv2.LINE_AA 表示使用抗锯齿线。

  • shift:一个整数,表示坐标中的小数位数。通常设置为 0。

返回值:

  • 函数不会返回任何值,而是直接在 image 数组上绘制矩形。

绘制圆

cv2.circle(image, center, radius, color, thickness=1, lineType=cv2.LINE_8, shift=0)
# cv2.circle(graph, (50, 50), 50, (0, 255, 0))

参数说明:

  • image:一个 NumPy 数组,表示要绘制圆形的图像。

  • center:一个元组 (x, y),表示圆心的坐标。

  • radius:一个浮点数,表示圆的半径。

  • color:一个元组 (b, g, r),表示圆的颜色。OpenCV 使用 BGR 格式。

  • thickness:一个整数,表示圆环的厚度。如果设置为 1,则表示一个像素的厚度;如果设置为 2,则表示两个像素的厚度,以此类推。如果设置为负数,则表示填充圆形。

  • lineType:一个整数,表示圆环边界的类型。常见的类型包括 cv2.LINE_8、cv2.LINE_AA 等。cv2.LINE_8 表示使用 8 连接线,而 cv2.LINE_AA 表示使用抗锯齿线。

  • shift:一个整数,表示坐标中的小数位数。通常设置为 0。

返回值:

  • 函数不会返回任何值,而是直接在 image 数组上绘制圆形。

绘制椭圆

cv2.ellipse(image, center, axes, angle, startAngle, endAngle, color, thickness=1, lineType=cv2.LINE_8, shift=0)
# cv2.ellipse(graph, (90, 90), (30, 60), 45, 0, 360, (0, 0, 255))

参数说明:

  • image:一个 NumPy 数组,表示要绘制椭圆的图像。

  • center:一个元组 (x, y),表示椭圆中心的坐标。

  • axes:一个元组 (major_axis, minor_axis),表示椭圆的主轴和副轴的长度。主轴是沿着 x 轴的最大半轴,副轴是沿着 y 轴的最大半轴。

  • angle:一个浮点数,表示椭圆的旋转角度。角度是逆时针方向的,以弧度为单位。

  • startAngle 和 endAngle:两个整数,表示椭圆弧的开始和结束角度。这两个角度是顺时针方向的,以度为单位。如果 endAngle 小于 startAngle,则表示一个完整的椭圆。

  • color:一个元组 (b, g, r),表示椭圆的颜色。OpenCV 使用 BGR 格式。

  • thickness:一个整数,表示椭圆边界的厚度。如果设置为 1,则表示一个像素的厚度;如果设置为 2,则表示两个像素的厚度,以此类推。如果设置为负数,则表示填充椭圆。

  • lineType:一个整数,表示椭圆边界的类型。常见的类型包括 cv2.LINE_8、cv2.LINE_AA 等。cv2.LINE_8 表示使用 8 连接线,而 cv2.LINE_AA 表示使用抗锯齿线。

  • shift:一个整数,表示坐标中的小数位数。通常设置为 0。

返回值:

  • 函数不会返回任何值,而是直接在 image 数组上绘制椭圆。

绘制多边形

cv2.polylines(image, pts, isClosed, color, thickness=1, lineType=cv2.LINE_8, shift=0)
# pts = np.array([(50, 100), (50, 150), (100, 160)], np.int32)
# cv2.polylines(graph, [pts], True, (0, 0, 255))

参数说明:

  • image:一个 NumPy 数组,表示要绘制多边形的图像。

  • pts:一个 NumPy 数组或一个包含多个点(坐标元组)的列表,表示多边形的顶点。如果 pts 是一个数组,它应该是一个形状为 (n, 1, 2) 的三维数组,其中 n 是多边形的顶点数。如果 pts 是一个列表,它应该包含 n 个坐标元组。

  • isClosed:一个布尔值,表示多边形是否是闭合的。如果为 True,则表示多边形是闭合的;如果为 False,则表示多边形是开放的。

  • color:一个元组 (b, g, r),表示多边形的颜色。OpenCV 使用 BGR 格式。

  • thickness:一个整数,表示多边形边界的厚度。如果设置为 1,则表示一个像素的厚度;如果设置为 2,则表示两个像素的厚度,以此类推。如果设置为负数,则表示填充多边形。

  • lineType:一个整数,表示多边形边界的类型。常见的类型包括 cv2.LINE_8、cv2.LINE_AA 等。cv2.LINE_8 表示使用 8 连接线,而 cv2.LINE_AA 表示使用抗锯齿线。

  • shift:一个整数,表示坐标中的小数位数。通常设置为 0。

返回值:

  • 函数不会返回任何值,而是直接在 image 数组上绘制。

绘制填充多边形

cv2.fillPoly(image, pts, color)
# pts2 = np.array([(100, 30), (100, 50), (150, 100)], np.int32)
# cv2.fillPoly(graph, [pts2], (0, 0, 255))

参数说明:

  • image:一个 NumPy 数组,表示要填充多边形的图像。

  • pts:一个 NumPy 数组或一个包含多个点(坐标元组)的列表,表示多边形的顶点。如果 pts 是一个数组,它应该是一个形状为 (n, 1, 2) 的三维数组,其中 n 是多边形的顶点数。如果 pts 是一个列表,它应该包含 n 个坐标元组。

  • color:一个元组 (b, g, r),表示多边形填充的颜色。OpenCV 使用 BGR 格式。

返回值:

  • 函数不会返回任何值,而是直接在 image 数组上绘制。

绘制文本

cv2.putText(image, text, org, fontFace, fontScale, color, thickness, lineType, bottomLeftOrigin=False)
# cv2.putText(graph, 'put Text', (10, 150), cv2.FONT_HERSHEY_COMPLEX, 1, (0, 0, 255))

参数说明:

  • image:一个 NumPy 数组,表示要绘制文本的图像。

  • text:一个字符串,表示要显示的文本。

  • org:一个元组 (x, y),表示文本的起点坐标。

  • fontFace:一个整数,表示字体类型。常见的字体类型包括 cv2.FONT_HERSHEY_SIMPLEX、cv2.FONT_HERSHEY_PLAIN、cv2.FONT_HERSHEY_DUPLEX 等。

  • fontScale:一个浮点数,表示字体大小。字体大小是基于 fontFace 指定的字体中的最大字符高度的比例。

  • color:一个元组 (b, g, r),表示文本的颜色。OpenCV 使用 BGR 格式。

  • thickness:一个整数,表示文本边界的厚度。如果设置为 1,则表示一个像素的厚度;如果设置为 2,则表示两个像素的厚度,以此类推。如果设置为负数,则表示填充文本。

  • lineType:一个整数,表示文本边界的类型。常见的类型包括 cv2.LINE_8、cv2.LINE_AA 等。cv2.LINE_8 表示使用 8 连接线,而 cv2.LINE_AA 表示使用抗锯齿线。

  • bottomLeftOrigin:一个布尔值,表示文本的坐标原点。如果为 True,则文本的底部左角位于 org 坐标;如果为 False(默认值),则文本的顶部左角位于 org 坐标。

返回值:

  • 函数不会返回任何值,而是直接在 image 数组上绘制。

你可能感兴趣的:(图像识别与OpenCV,opencv,人工智能,计算机视觉)