opencv-python库 cv2 图形绘制 cv2.line()cv2.rectangle()cv2.circle()cv2. ...

打印 上一主题 下一主题

主题 1876|帖子 1876|积分 5632

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
cv2.line()函数

cv2.line() 是 OpenCV 中的一个函数,用于在图像上绘制直线。这个函数需要指定图像、线的出发点和终点坐标、线的颜色、线的宽度以及线的类型。
下面是 cv2.line() 函数的详细参数说明:
  1. cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]])
复制代码
参数表明:
  1. img: 要在其上绘制直线的图像,应该是一个 NumPy 数组。
  2. pt1: 直线的第一个点,坐标以元组形式给出,例如 (x1, y1)。
  3. pt2: 直线的第二个点,坐标以元组形式给出,例如 (x2, y2)。
  4. color: 直线的颜色,对于 BGR,我们传递一个元组,例如对于蓝色,传递 (255, 0, 0)。
  5. thickness: 直线的宽度。如果是负数(通常是 -1),则线将被填充,形成一个矩形。
  6. lineType: 线的类型,可以是 8 连接、4 连接等。默认值是 cv2.LINE_8。
  7. shift: 坐标点中的小数位数。默认情况下,坐标是整数。如果传递一个非零值,例如 2,那么坐标将被缩放。例如,点 (10.5, 20.5) 在 shift=1 时将被转换为 (105, 205)。
复制代码
下面是一个使用 cv2.line() 绘制直线的简朴示例:
  1. import cv2
  2. import numpy as np
  3. # 创建一个黑色的空白图像
  4. image = np.zeros((512, 512, 3), dtype="uint8")
  5. # 在图像上绘制一条从左上角到右下角的红色直线,宽度为 5
  6. cv2.line(image, (0, 0), (511, 511), (0, 0, 255), 5)
  7. # 显示图像
  8. cv2.imshow("Line", image)
  9. cv2.waitKey(0)
  10. cv2.destroyAllWindows()
复制代码
在这个例子中,我们创建了一个黑色的空白图像,并使用 cv2.line() 在上面绘制了一条红色的直线,从左上角 (0, 0) 到右下角 (511, 511),直线的宽度设置为 5 像素。末了,我们使用 cv2.imshow() 表现图像,并使用 cv2.waitKey() 和 cv2.destroyAllWindows() 来处理键盘输入和关闭窗口。
cv2.rectangle()函数

在OpenCV中,cv2.rectangle() 函数用于在图像上绘制矩形。该函数需要指定图像、矩形的左上角和右下角坐标、矩形的颜色、线条宽度以及线条类型。
下面是 cv2.rectangle() 函数的详细参数说明:
  1. cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]])
复制代码
参数表明:


  • img: 要在其上绘制矩形的图像,应该是一个 NumPy 数组。
  • pt1: 矩形的极点之一,通常是左上角的坐标,坐标以元组情势给出,例如 (x1, y1)。
  • pt2: 矩形的另一个极点,通常是右下角的坐标,坐标以元组情势给出,例如 (x2, y2)。
  • color: 矩形的颜色,对于 BGR,我们转达一个元组,例如对于蓝色,转达 (255, 0, 0)。
  • thickness: 矩形边框的厚度。假如转达负数(例如 -1),则矩形将被添补。
  • lineType: 线的类型,可以是 8 连接、4 连接等。默认值是 cv2.LINE_8。
  • shift: 坐标点中的小数位数。默认环境下,坐标是整数。假如转达一个非零值,例如 2,那么坐标将被缩放。例如,点 (10.5, 20.5) 在 shift=1 时将被转换为 (105, 205)。
下面是一个使用 cv2.rectangle() 绘制矩形的简朴示例:
  1. import cv2
  2. import numpy as np
  3. # 创建一个黑色的空白图像
  4. image = np.zeros((512, 512, 3), dtype="uint8")
  5. # 在图像上绘制一个红色的矩形,左上角坐标 (30, 30),右下角坐标 (300, 300),线条宽度为 2
  6. cv2.rectangle(image, (30, 30), (300, 300), (0, 0, 255), 2)
  7. # 显示图像
  8. cv2.imshow("Rectangle", image)
  9. cv2.waitKey(0)
  10. cv2.destroyAllWindows()
复制代码
在这个例子中,我们创建了一个黑色的空白图像,并使用 cv2.rectangle() 在上面绘制了一个红色的矩形。矩形的左上角坐标是 (30, 30),右下角坐标是 (300, 300),线条宽度设置为 2 像素。末了,我们使用 cv2.imshow() 表现图像,并使用 cv2.waitKey() 和 cv2.destroyAllWindows() 来处理键盘输入和关闭窗口。
cv2.circle()函数

在OpenCV中,cv2.circle() 函数用于在图像上绘制圆。这个函数需要指定图像、圆心的坐标、半径、圆的颜色、线条宽度以及线条类型。
下面是 cv2.circle() 函数的详细参数说明:
  1. cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]])
复制代码
参数表明:


  • img: 要在其上绘制圆的图像,应该是一个 NumPy 数组。
  • center: 圆的中心点坐标,以元组情势给出,例如 (x, y)。
  • radius: 圆的半径,表示从圆心到圆上任意一点的距离。
  • color: 圆的颜色,对于 BGR,我们转达一个元组,例如对于蓝色,转达 (255, 0, 0)。
  • thickness: 圆的线条宽度。假如转达 -1,则圆将被添补。
  • lineType: 线的类型,可以是 8 连接、4 连接等。默认值是 cv2.LINE_8。
  • shift: 坐标点中的小数位数。默认环境下,坐标是整数。假如转达一个非零值,例如 2,那么坐标将被缩放。例如,点 (10.5, 20.5) 在 shift=1 时将被转换为 (105, 205)。
下面是一个使用 cv2.circle() 绘制圆的简朴示例:
  1. import cv2
  2. import numpy as np
  3. # 创建一个黑色的空白图像
  4. image = np.zeros((512, 512, 3), dtype="uint8")
  5. # 在图像上绘制一个红色的圆,圆心在 (256, 256),半径为 100,线条宽度为 2
  6. cv2.circle(image, (256, 256), 100, (0, 0, 255), 2)
  7. # 显示图像
  8. cv2.imshow("Circle", image)
  9. cv2.waitKey(0)
  10. cv2.destroyAllWindows()
复制代码
在这个例子中,我们创建了一个黑色的空白图像,并使用 cv2.circle() 在上面绘制了一个红色的圆。圆心的坐标是 (256, 256),半径是 100 像素,线条宽度设置为 2 像素。末了,我们使用 cv2.imshow() 表现图像,并使用 cv2.waitKey() 和 cv2.destroyAllWindows() 来处理键盘输入和关闭窗口。
cv2.ellipse()函数

在OpenCV中,cv2.ellipse() 函数用于在图像上绘制椭圆。这个函数需要指定图像、椭圆的中心点、椭圆的长半轴和短半轴、旋转角度、椭圆的开始角度和结束角度(以度为单位)、椭圆的颜色、线条宽度以及线条类型。
下面是 cv2.ellipse() 函数的详细参数说明:
  1. cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color[, thickness[, lineType[, shift]]])
复制代码
参数表明:


  • img: 要在其上绘制椭圆的图像,应该是一个 NumPy 数组。
  • center: 椭圆的中心点坐标,以元组情势给出,例如 (x, y)。
  • axes: 一个元组,表示椭圆的长半轴和短半轴的长度,例如 (a, b)。
  • angle: 椭圆旋转的角度,以度为单位,逆时针方向为正。
  • startAngle 和 endAngle: 椭圆的起始和结束角度,以度为单位,用于绘制椭圆弧。
  • color: 椭圆的颜色,对于 BGR,我们转达一个元组,例如对于蓝色,转达 (255, 0, 0)。
  • thickness: 椭圆的线条宽度。假如转达 -1,则椭圆将被添补。
  • lineType: 线的类型,可以是 8 连接、4 连接等。默认值是 cv2.LINE_8。
  • shift: 坐标点中的小数位数。默认环境下,坐标是整数。
下面是一个使用 cv2.ellipse() 绘制椭圆的简朴示例:
  1. import cv2
  2. import numpy as np
  3. # 创建一个黑色的空白图像
  4. image = np.zeros((512, 512, 3), dtype="uint8")
  5. # 在图像上绘制一个红色的椭圆,中心点 (256, 256),长半轴 100,短半轴 50,旋转 0 度
  6. cv2.ellipse(image, (256, 256), (100, 50), 0, 0, 360, (0, 0, 255), -1)
  7. # 显示图像
  8. cv2.imshow("Ellipse", image)
  9. cv2.waitKey(0)
  10. cv2.destroyAllWindows()
复制代码
在这个例子中,我们创建了一个黑色的空白图像,并使用 cv2.ellipse() 在上面绘制了一个红色的椭圆。椭圆的中心点是 (256, 256),长半轴是 100 像素,短半轴是 50 像素,椭圆没有旋转(即 angle=0),绘制完备的椭圆(startAngle=0 和 endAngle=360)。末了,我们使用 cv2.imshow() 表现图像,并使用 cv2.waitKey() 和 cv2.destroyAllWindows() 来处理键盘输入和关闭窗口。
cv2.polylines()函数

在OpenCV中,cv2.polylines() 函数用于在图像上绘制多条线段。这些线段可以是由一系列的点连接而成的多边形线条。
以下是 cv2.polylines() 函数的详细参数说明:
  1. cv2.polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]])
复制代码
参数表明:


  • img: 要在其上绘制线段的图像,应该是一个 NumPy 数组。
  • pts: 一个包含多个点坐标的列表或数组,其中每个点由 (x, y) 坐标表示。这些点将按次序连接以形成线段。
  • isClosed: 一个布尔值,指示线段是否应该闭合。假如为 True,则末了一个点和第一个点将被连接,形成一个闭合的多边形。
  • color: 线段的颜色,对于 BGR,转达一个元组,例如对于蓝色,转达 (255, 0, 0)。
  • thickness: 线段的宽度。假如为负数(例如 -1),则线段将被添补。
  • lineType: 线的类型,可以是 8 连接、4 连接等。默认值是 cv2.LINE_8。
  • shift: 坐标点中的小数位数。默认环境下,坐标是整数。假如转达一个非零值,例如 2,那么坐标将被缩放。
下面是一个使用 cv2.polylines() 绘制多边形的简朴示例:
  1. import cv2
  2. import numpy as np
  3. # 创建一个黑色的空白图像
  4. image = np.zeros((512, 512, 3), dtype="uint8")
  5. # 定义多边形的顶点
  6. pts = np.array([[10, 50], [200, 50], [100, 300], [10, 50]], np.int32)
  7. # 在图像上绘制多边形线段,不闭合
  8. cv2.polylines(image, [pts], False, (0, 255, 0), 3)
  9. # 显示图像
  10. cv2.imshow("Polygon", image)
  11. cv2.waitKey(0)
  12. cv2.destroyAllWindows()
复制代码
在这个例子中,我们创建了一个黑色的空白图像,并使用 cv2.polylines() 在上面绘制了一个绿色的多边形。多边形的极点坐标存储在 pts 数组中,并通过一个列表转达给 cv2.polylines() 函数。isClosed 参数设置为 False,表示我们不盼望线段闭合。线段的宽度设置为 3 像素,颜色为绿色。
请留意,即使 isClosed 设置为 False,由于 pts 数组中的末了一个点和第一个点雷同,所以绘制的线段仍然会闭合。假如你不盼望线段闭合,确保 pts 数组中的末了一个点和第一个点不雷同。
cv2.putText()函数

在OpenCV中,cv2.putText() 函数用于在图像上绘制文本。这个函数在图像上添加文本标注,可以指定文本内容、字体、字号、颜色、线条粗细、线条类型、坐标位置等。
下面是 cv2.putText() 函数的详细参数说明:
  1. cv2.putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])
复制代码
参数表明:


  • img: 要在其上绘制文本的图像,应该是一个 NumPy 数组。
  • text: 要绘制的文本字符串。
  • org: 文本字符串的起始坐标点,以元组情势给出,例如 (x, y)。该点通常是文本字符串的左下角或基线的出发点,这取决于 bottomLeftOrigin 参数。
  • fontFace: 字体类型,例如 cv2.FONT_HERSHEY_SIMPLEX、cv2.FONT_HERSHEY_PLAIN 等。OpenCV 提供了几种不同的字体供选择。
  • fontScale: 字体缩放因子,用于控制文本巨细。增长这个值将使得文本更大。
  • color: 文本的颜色,对于 BGR,转达一个元组,例如对于白色,转达 (255, 255, 255)。
  • thickness: 文本的线条宽度。假如转达 -1,则文本将被添补。
  • lineType: 线的类型,可以是 8 连接、4 连接等。默认值是 cv2.LINE_8。
  • bottomLeftOrigin: 这是一个布尔值,当为 True 时,文本的起始坐标点是文本字符串的左下角;当为 False 时,起始坐标点是文本字符串的基线出发点。默认环境下,这个值是 False。
下面是一个使用 cv2.putText() 绘制文本的简朴示例:
  1. import cv2
  2. import numpy as np
  3. # 创建一个黑色的空白图像
  4. image = np.zeros((300, 300, 3), dtype="uint8")
  5. # 在图像上绘制文本
  6. text = "Hello, OpenCV!"
  7. org = (50, 50)
  8. fontFace = cv2.FONT_HERSHEY_SIMPLEX
  9. fontScale = 1
  10. color = (255, 255, 255)
  11. thickness = 2
  12. cv2.putText(image, text, org, fontFace, fontScale, color, thickness)
  13. # 显示图像
  14. cv2.imshow("Text", image)
  15. cv2.waitKey(0)
  16. cv2.destroyAllWindows()
复制代码
在这个例子中,我们创建了一个黑色的空白图像,并使用 cv2.putText() 在上面绘制了白色的文本 “Hello, OpenCV!”。文本的起始坐标是 (50, 50),字体类型是 cv2.FONT_HERSHEY_SIMPLEX,字体缩放因子是 1,线条宽度是 2。末了,我们使用 cv2.imshow() 表现图像,并使用 cv2.waitKey() 和 cv2.destroyAllWindows() 来处理键盘输入和关闭窗口。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王國慶

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表