嘉祥网站seo,室内装修公司招聘信息,设计网站评分标准,360企业自助建站文章目录 前言一、画图形1.1 画线1.2 画矩形1.3 画圆1.4 画椭圆1.5 添加文本 总结 前言
在计算机视觉和图像处理中#xff0c;OpenCV不仅可以处理图像和视频#xff0c;还提供了一组功能强大的工具#xff0c;用于在图像上绘制各种形状和图形。这些功能使得我们能够在图像上… 文章目录 前言一、画图形1.1 画线1.2 画矩形1.3 画圆1.4 画椭圆1.5 添加文本 总结 前言
在计算机视觉和图像处理中OpenCV不仅可以处理图像和视频还提供了一组功能强大的工具用于在图像上绘制各种形状和图形。这些功能使得我们能够在图像上标注、分析和突出显示感兴趣的区域。本文将介绍如何使用Python和OpenCV绘制各种图形包括线条、矩形、圆形等以及如何添加文本。这对于图像处理和计算机视觉任务中的可视化和分析非常有用。 目标 学习使用 OpenCV 绘制不同的几何形状 您将学习这些函数cv.line()、cv.circle()、cv.rectangle()、cv.ellipse()、cv.putText()等。
在上述所有函数中您将看到一些常见参数如下所示
img 要绘制形状的图像 color 形状的颜色。对于 BGR将其作为元组传递例如255,0,0 表示蓝色。对于灰度只需传递标量值即可。 thickness 线或圆等的厚度如果为圆形等闭合图形传递 -1它将填充形状。默认厚度 1 lineType 线的类型是否为 8 连接、抗锯齿线等默认情况下它是 8 连接的。 cv.LINE_AA提供了抗锯齿线非常适合曲线。
一、画图形
1.1 画线
函数原型
cv2.line(img, pt1, pt2, color, thickness, lineType, shift)参数说明
img: 图像要在其上绘制线条的图像。 pt1: 线条的起点坐标。 pt2: 线条的终点坐标。 color: 线条的颜色通常是一个BGR元组例如 (255, 0, 0) 表示蓝色。 thickness: 线条的宽度整数值。 lineType: 线条的类型可以是 cv2.LINE_4、cv2.LINE_8 或 cv2.LINE_AA。 shift: 像素坐标点的小数部分位数。 示例代码
import cv2
import numpy as npimg np.zeros((512, 512, 3), dtypenp.uint8)
cv2.line(img, (0, 0), (511, 511), (255, 0, 0), 5)cv2.imshow(Line, img)
cv2.waitKey(0)
cv2.destroyAllWindows()1.2 画矩形
函数原型
cv2.rectangle(img, pt1, pt2, color, thickness, lineType, shift)参数说明
img: 图像要在其上绘制矩形的图像。 pt1: 矩形的左上角坐标。 pt2: 矩形的右下角坐标。 color: 矩形的颜色通常是一个BGR元组。 thickness: 线条的宽度整数值。如果为-1表示填充矩形。 lineType: 线条的类型可以是 cv2.LINE_4、cv2.LINE_8 或 cv2.LINE_AA。 shift: 像素坐标点的小数部分位数。 示例代码
import cv2
import numpy as npimg np.zeros((512, 512, 3), dtypenp.uint8)
cv2.rectangle(img, (100, 100), (300, 300), (0, 255, 0), 3)cv2.imshow(Rectangle, img)
cv2.waitKey(0)
cv2.destroyAllWindows()1.3 画圆
函数原型
cv2.circle(img, center, radius, color, thickness, lineType, shift)参数说明
img: 图像要在其上绘制圆形的图像。 center: 圆心坐标。 radius: 圆的半径。 color: 圆的颜色通常是一个BGR元组。 thickness: 线条的宽度整数值。如果为-1表示填充圆。 lineType: 线条的类型可以是 cv2.LINE_4、cv2.LINE_8 或 cv2.LINE_AA。 shift: 像素坐标点的小数部分位数。 示例代码
import cv2
import numpy as npimg np.zeros((512, 512, 3), dtypenp.uint8)
cv2.circle(img, (250, 250), 150, (0, 0, 255), -1)cv2.imshow(Circle, img)
cv2.waitKey(0)
cv2.destroyAllWindows()1.4 画椭圆
函数原型
cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness, lineType, shift)参数说明
img: 图像要在其上绘制椭圆的图像。 center: 椭圆中心坐标。 axes: 长轴和短轴的长度。 angle: 旋转角度。 startAngle: 椭圆弧的起始角度。 endAngle: 椭圆弧的结束角度。 color: 椭圆的颜色通常是一个BGR元组。 thickness: 线条的宽度整数值。如果为-1表示填充椭圆。 lineType: 线条的类型可以是 cv2.LINE_4、cv2.LINE_8 或 cv2.LINE_AA。 shift: 像素坐标点的小数部分位数。 示例代码
import cv2
import numpy as npimg np.zeros((512, 512, 3), dtypenp.uint8)
cv2.ellipse(img, (256, 256), (100, 50), 45, 0, 180, (255, 255, 0), -1)cv2.imshow(Ellipse, img)
cv2.waitKey(0)
cv2.destroyAllWindows()1.5 添加文本
添加文本
函数原型
cv2.putText(img, text, org, fontFace, fontScale, color, thickness, lineType, bottomLeftOrigin)参数说明
img: 图像要在其上添加文本的图像。 text: 要添加的文本字符串。 org: 文本的起始坐标即基线左下角的点。 fontFace: 字体类型例如 cv2.FONT_HERSHEY_SIMPLEX。 fontScale: 字体缩放因子。 color: 文本的颜色通常是一个BGR元组。 thickness: 文本线条的宽度整数值。 lineType: 线条的类型可以是 cv2.LINE_4、cv2.LINE_8 或 cv2.LINE_AA。 bottomLeftOrigin: 如果为 True则文本原点在左下角如果为 False默认则原点在左上角。 示例代码
import cv2
import numpy as npimg np.zeros((512, 512, 3), dtypenp.uint8)
font cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img, OpenCV, (10, 300), font, 4, (255, 255, 255), 2, cv2.LINE_AA)cv2.imshow(Text, img)
cv2.waitKey(0)
cv2.destroyAllWindows()总结
使用OpenCV绘制图形是进行图像处理和计算机视觉任务中不可或缺的一部分。从简单的线条到复杂的文本OpenCV提供了丰富的绘图功能。通过本文的介绍你学会了如何在图像上绘制线条、矩形、圆形和文本并可以根据需要调整颜色、大小和其他参数。这些技能对于图像分析、目标定位和可视化等任务都非常重要。希望这篇文章能够帮助你更好地利用OpenCV进行图形绘制。