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

这篇具有很好参考价值的文章主要介绍了opencv-python库 cv2 图形绘制 cv2.line()cv2.rectangle()cv2.circle()cv2.ellipse()cv2.polylines()cv2.putText。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

cv2.line()函数

cv2.line() 是 OpenCV 中的一个函数,用于在图像上绘制直线。这个函数需要指定图像、线的起点和终点坐标、线的颜色、线的宽度以及线的类型。

下面是 cv2.line() 函数的详细参数说明:

cv2.line(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.line() 绘制直线的简单示例:

import cv2
import numpy as np

# 创建一个黑色的空白图像
image = np.zeros((512, 512, 3), dtype="uint8")

# 在图像上绘制一条从左上角到右下角的红色直线,宽度为 5
cv2.line(image, (0, 0), (511, 511), (0, 0, 255), 5)

# 显示图像
cv2.imshow("Line", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这个例子中,我们创建了一个黑色的空白图像,并使用 cv2.line() 在上面绘制了一条红色的直线,从左上角 (0, 0) 到右下角 (511, 511),直线的宽度设置为 5 像素。最后,我们使用 cv2.imshow() 显示图像,并使用 cv2.waitKey() 和 cv2.destroyAllWindows() 来处理键盘输入和关闭窗口。

cv2.rectangle()函数

在OpenCV中,cv2.rectangle() 函数用于在图像上绘制矩形。该函数需要指定图像、矩形的左上角和右下角坐标、矩形的颜色、线条宽度以及线条类型。

下面是 cv2.rectangle() 函数的详细参数说明:

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() 绘制矩形的简单示例:

import cv2
import numpy as np

# 创建一个黑色的空白图像
image = np.zeros((512, 512, 3), dtype="uint8")

# 在图像上绘制一个红色的矩形,左上角坐标 (30, 30),右下角坐标 (300, 300),线条宽度为 2
cv2.rectangle(image, (30, 30), (300, 300), (0, 0, 255), 2)

# 显示图像
cv2.imshow("Rectangle", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这个例子中,我们创建了一个黑色的空白图像,并使用 cv2.rectangle() 在上面绘制了一个红色的矩形。矩形的左上角坐标是 (30, 30),右下角坐标是 (300, 300),线条宽度设置为 2 像素。最后,我们使用 cv2.imshow() 显示图像,并使用 cv2.waitKey() 和 cv2.destroyAllWindows() 来处理键盘输入和关闭窗口。

cv2.circle()函数

在OpenCV中,cv2.circle() 函数用于在图像上绘制圆。这个函数需要指定图像、圆心的坐标、半径、圆的颜色、线条宽度以及线条类型。

下面是 cv2.circle() 函数的详细参数说明:

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() 绘制圆的简单示例:

import cv2
import numpy as np

# 创建一个黑色的空白图像
image = np.zeros((512, 512, 3), dtype="uint8")

# 在图像上绘制一个红色的圆,圆心在 (256, 256),半径为 100,线条宽度为 2
cv2.circle(image, (256, 256), 100, (0, 0, 255), 2)

# 显示图像
cv2.imshow("Circle", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这个例子中,我们创建了一个黑色的空白图像,并使用 cv2.circle() 在上面绘制了一个红色的圆。圆心的坐标是 (256, 256),半径是 100 像素,线条宽度设置为 2 像素。最后,我们使用 cv2.imshow() 显示图像,并使用 cv2.waitKey() 和 cv2.destroyAllWindows() 来处理键盘输入和关闭窗口。

cv2.ellipse()函数

在OpenCV中,cv2.ellipse() 函数用于在图像上绘制椭圆。这个函数需要指定图像、椭圆的中心点、椭圆的长半轴和短半轴、旋转角度、椭圆的开始角度和结束角度(以度为单位)、椭圆的颜色、线条宽度以及线条类型。

下面是 cv2.ellipse() 函数的详细参数说明:

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() 绘制椭圆的简单示例:

import cv2
import numpy as np

# 创建一个黑色的空白图像
image = np.zeros((512, 512, 3), dtype="uint8")

# 在图像上绘制一个红色的椭圆,中心点 (256, 256),长半轴 100,短半轴 50,旋转 0 度
cv2.ellipse(image, (256, 256), (100, 50), 0, 0, 360, (0, 0, 255), -1)

# 显示图像
cv2.imshow("Ellipse", image)
cv2.waitKey(0)
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() 函数的详细参数说明:

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() 绘制多边形的简单示例:

import cv2
import numpy as np

# 创建一个黑色的空白图像
image = np.zeros((512, 512, 3), dtype="uint8")

# 定义多边形的顶点
pts = np.array([[10, 50], [200, 50], [100, 300], [10, 50]], np.int32)

# 在图像上绘制多边形线段,不闭合
cv2.polylines(image, [pts], False, (0, 255, 0), 3)

# 显示图像
cv2.imshow("Polygon", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这个例子中,我们创建了一个黑色的空白图像,并使用 cv2.polylines() 在上面绘制了一个绿色的多边形。多边形的顶点坐标存储在 pts 数组中,并通过一个列表传递给 cv2.polylines() 函数。isClosed 参数设置为 False,表示我们不希望线段闭合。线段的宽度设置为 3 像素,颜色为绿色。

请注意,即使 isClosed 设置为 False,由于 pts 数组中的最后一个点和第一个点相同,所以绘制的线段仍然会闭合。如果你不希望线段闭合,确保 pts 数组中的最后一个点和第一个点不相同。

cv2.putText()函数

在OpenCV中,cv2.putText() 函数用于在图像上绘制文本。这个函数在图像上添加文本标注,可以指定文本内容、字体、字号、颜色、线条粗细、线条类型、坐标位置等。

下面是 cv2.putText() 函数的详细参数说明:

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() 绘制文本的简单示例:

import cv2
import numpy as np

# 创建一个黑色的空白图像
image = np.zeros((300, 300, 3), dtype="uint8")

# 在图像上绘制文本
text = "Hello, OpenCV!"
org = (50, 50)
fontFace = cv2.FONT_HERSHEY_SIMPLEX
fontScale = 1
color = (255, 255, 255)
thickness = 2

cv2.putText(image, text, org, fontFace, fontScale, color, thickness)

# 显示图像
cv2.imshow("Text", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这个例子中,我们创建了一个黑色的空白图像,并使用 cv2.putText() 在上面绘制了白色的文本 “Hello, OpenCV!”。文本的起始坐标是 (50, 50),字体类型是 cv2.FONT_HERSHEY_SIMPLEX,字体缩放因子是 1,线条宽度是 2。最后,我们使用 cv2.imshow() 显示图像,并使用 cv2.waitKey() 和 cv2.destroyAllWindows() 来处理键盘输入和关闭窗口。文章来源地址https://www.toymoban.com/news/detail-856225.html

到了这里,关于opencv-python库 cv2 图形绘制 cv2.line()cv2.rectangle()cv2.circle()cv2.ellipse()cv2.polylines()cv2.putText的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python cv2 opencv-python opencv-contrib-python 安装

    老规矩,话不多说,上代码! pip install opencv-python(如果只用主模块,则使用这个命令安装【推荐】) pip install opencv-contrib-python(如果需要用到 contrib 模块,则使用这个命令【本次因自己没有使用 contrib 模块,所以没有尝试】) 首先,讲一下 cv2 这个模块是 opencv 的,所以安

    2024年02月11日
    浏览(49)
  • opencv-python3 | cv2.findContours()检测图像中物体轮廓

    轮廓可以简单地理解为连接所有连续点(沿物体边界)的曲线,这些点通常具有相同的颜色或强度。 轮廓在图像分析中具有重要意义,是物体形状分析和对象检测和识别的有用工具,是理解图像语义信息的重要依据。 通常,为了提高物体轮廓检测的准确率,首先要将彩色图

    2024年02月05日
    浏览(50)
  • 【Python入门教程】CV2报错:cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\s

             OpenCV作为一个强大计算机视觉库被各个领域广泛应用,今天分享下自己编程遇到的报错信息以及解决办法。         这里包含了一个警告和一个报错信息。          警告信息: OpenCV库在处理TIFF图像时遇到的问题有关。从警告信息来看,你的TIFF图像可能使

    2024年02月08日
    浏览(52)
  • 【跟官网学opencv-python】笔记1.3:opencv鼠标绘图 cv2.setMouseCallback()

    目录 前言 目标 函数详解 1、cv2.setMouseCallback()鼠标回调函数 2、鼠标事件简介 代码演示 ​编辑 应用演示 运行效果 参考 跟着官网学习才是基础入门的最佳选择,下文是opencv-python官网的学习记录及扩展! 学习函数cv2.setMouseCallback()并使用鼠标绘制不同图形(矩形、多边形等)

    2024年02月03日
    浏览(80)
  • opencv-python 已安装,但是import cv2仍旧失败的原因

    在终端和cmd中输入以下命令pip install opencv-python 都会显示opencv-python已安装 注:用 pip install cv2安装会显示报错 大部分安装失败的原因都是安装命令输入错误  其实是解释器的问题 更换已安装opencv的解释器即可解决问题 本项目使用的解释器位置如图所示:   已安装opencv的解释

    2024年02月11日
    浏览(51)
  • 【已解决】安装cv2时Building wheel for opencv-python终端卡死

    环境: Ubuntu20.04 Python3.6 现象:终端输出类似下面的命令,并卡住不动 首先, OpenCV 较旧的Python版本不需要进行滚轮编译,因此造成编译在 处停止。为了防止因为pip版本较旧引起干扰,首先运行 更新 pip 版本,接着再次安装 接着大概率能解决 Building wheel for opencv-python (PEP 51

    2024年02月03日
    浏览(70)
  • OpenCV-Python学习(13)—— OpenCV 多边形填充与绘制(cv.fillPoly、cv.polylines)

    1. 知识点 学习 cv.polylines 函数的使用; 学习 cv.fillPoly 函数的使用。 2. 绘制折线或多边形 cv.polylines 函数说明 2.1 函数使用 2.2 参数说明 参数 说明 img 表示要在其上绘制矩形的图像的img对象。 pts 表示一个或多个点集。 isClosed 表示标志,决定所绘制的多边形是否闭合。若为 T

    2024年02月16日
    浏览(58)
  • cv2.error: OpenCV(4.6.0) D:\a\opencv-python\opencv-python\opencv\modules\……解决方案

    运行opencv官网示例代码facedetect.py 运行以上代码报以下错误: 根据报错位置: 可以发现是\\\"haarcascade_frontalface_alt.xml\\\"和 \\\"data/haarcascades/haarcascade_eye.xml\\\"的文件路径不对造成的。 \\\"haarcascade_frontalface_alt.xml\\\"和 \\\"data/haarcascades/haarcascade_eye.xml\\\"是在python安装的cv2包下,将代码中的路径改

    2024年02月15日
    浏览(44)
  • cv2.error: OpenCV(4.9.0) :-1: error: (-5:Bad argument) in function ‘rectangle‘

      File \\\"D:CodeGhostFaceNetsfacenet-retinaface-pytorch-mainretinaface.py\\\", line 460, in detect_image     cv2.rectangle(old_image, (b[0], b[1]), (b[2], b[3]), (0, 0, 255), 2) cv2.error: OpenCV(4.9.0) :-1: error: (-5:Bad argument) in function \\\'rectangle\\\' Overload resolution failed:  - img marked as output argument, but provided NumPy array marked as rea

    2024年01月25日
    浏览(44)
  • #cv2.error: OpenCV(4.8.0) D:\a\opencv-python\opencv-python\opencv\modules\imgcodecs\src\loadsave.cpp

    #使用opencv的报错#  这个报错显示的在使用opencv函数时报错,在打开和读取文件夹时出现问题 1.首先是检查路径是否正确 2.路径正确的话极有可能就是文件名出现问题 3.检查自己所使用的路径中是否出现汉字等opencv无法识别的符号(大多数是这个原因)  需要注意的就是在使

    2024年02月05日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包