本帖最后由 御坂主机 于 2024-7-10 16:45 编辑
1. 引言
OpenCV是一个强大的计算机视觉库,广泛应用于图像处理、计算机视觉和机器学习等领域。OpenCV-Python是OpenCV库的Python接口,提供了丰富的功能。本文将详细介绍如何使用cv2模块中的绘图函数,包括cv2.line()、cv2.rectangle()、cv2.circle()、cv2.ellipse()、cv2.polylines()和cv2.putText(),以便在图像上进行各种图形的绘制。
1.1 图形绘制的意义
在图像处理中,绘制图形可以帮助我们标注、突出显示或者进行可视化分析。OpenCV提供的绘图函数可以方便地在图像上绘制各种基本图形,从而满足不同的需求。
2. 准备工作
2.1 安装OpenCV-Python
在开始之前,需要确保已经安装了OpenCV-Python库。可以使用以下命令进行安装
- pip install opencv-python
复制代码
2.2 导入必要模块
在使用OpenCV进行图形绘制之前,需要导入必要的模块
- import cv2
- import numpy as np
复制代码
3. 使用cv2.line()绘制直线
3.1 cv2.line()简介
cv2.line()函数用于在图像上绘制直线。其基本语法如下
- cv2.line(img, pt1, pt2, color, thickness)
复制代码
(1) img:要绘制直线的图像
(2) pt1:直线的起点坐标(x1, y1)
(3) pt2:直线的终点坐标(x2, y2)
(4) color:直线的颜色(BGR格式)
(5) thickness:直线的粗细(可选)
3.2 示例
在一张空白图像上绘制一条红色的直线
- img = np.zeros((512, 512, 3), np.uint8)
- cv2.line(img, (0, 0), (511, 511), (0, 0, 255), 5)
- cv2.imshow('Line', img)
- cv2.waitKey(0)
- cv2.destroyAllwindows()
复制代码
4. 使用cv2.rectangle()绘制矩形
4.1 cv2.rectangle()简介
cv2.rectangle()函数用于在图像上绘制矩形。其基本语法如下
- cv2.rectangle(img, pt1, pt2, color, thickness)
复制代码
(1) img:要绘制矩形的图像
(2) pt1:矩形的左上角坐标(x1, y1)
(3) pt2:矩形的右下角坐标(x2, y2)
(4) color:矩形的颜色(BGR格式)
(5) thickness:矩形边框的粗细(可选,-1表示填充矩形)
4.2 示例
在一张空白图像上绘制一个绿色的矩形
- img = np.zeros((512, 512, 3), np.uint8)
- cv2.rectangle(img, (100, 100), (400, 400), (0, 255, 0), 3)
- cv2.imshow('Rectangle', img)
- cv2.waitKey(0)
- cv2.destroyAllWindows()
复制代码
5. 使用cv2.circle()绘制圆形
5.1 cv2.circle()简介
cv2.circle()函数用于在图像上绘制圆形。其基本语法如下
- cv2.circle(img, center, radius, color, thickness)
复制代码
(1) img:要绘制圆形的图像
(2) center:圆心坐标(x, y)
(3) radius:圆的半径
(4) color:圆的颜色(BGR格式)
(5) thickness:圆边框的粗细(可选,-1表示填充圆形)
5.2 示例
在一张空白图像上绘制一个蓝色的圆形
- img = np.zeros((512, 512, 3), np.uint8)
- cv2.circle(img, (256, 256), 100, (255, 0, 0), -1)
- cv2.imshow('Circle', img)
- cv2.waitKey(0)
- cv2.destroyAllWindows()
复制代码
6. 使用cv2.ellipse()绘制椭圆
6.1 cv2.ellipse()简介
cv2.ellipse()函数用于在图像上绘制椭圆。其基本语法如下
- cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness)
复制代码
(1) img:要绘制椭圆的图像
(2) center:椭圆的中心坐标(x, y)
(3) axes:长轴和短轴的长度(长轴半径, 短轴半径)
(4) angle:椭圆的旋转角度
(5) startAngle:椭圆弧的起始角度
(6) endAngle:椭圆弧的终止角度
(7) color:椭圆的颜色(BGR格式)
(8) thickness:椭圆边框的粗细(可选,-1表示填充椭圆)
6.2 示例
在一张空白图像上绘制一个红色的椭圆
- img = np.zeros((512, 512, 3), np.uint8)
- cv2.ellipse(img, (256, 256), (200, 100), 0, 0, 180, (0, 0, 255), -1)
- cv2.imshow('Ellipse', img)
- cv2.waitKey(0)
- cv2.destroyAllWindows()
复制代码
7. 使用cv2.polylines()绘制多边形
7.1 cv2.polylines()简介
cv2.polylines()函数用于在图像上绘制多边形。其基本语法如下
- cv2.polylines(img, pts, isClosed, color, thickness)
复制代码
(1) img:要绘制多边形的图像
(2) pts:多边形的顶点坐标数组
(3) isClosed:是否闭合多边形
(4) color:多边形的颜色(BGR格式)
(5) thickness:多边形边框的粗细
7.2 示例
在一张空白图像上绘制一个黄色的三角形
- img = np.zeros((512, 512, 3), np.uint8)
- pts = np.array([[100, 100], [200, 100], [150, 200]], np.int32)
- pts = pts.reshape((-1, 1, 2))
- cv2.polylines(img, [pts], True, (0, 255, 255), 3)
- cv2.imshow('Polygon', img)
- cv2.waitKey(0)
- cv2.destroyAllWindows()
复制代码
8. 使用cv2.putText()绘制文本
8.1 cv2.putText()简介
cv2.putText()函数用于在图像上绘制文本。其基本语法如下
- cv2.putText(img, text, org, fontFace, fontScale, color, thickness)
复制代码
(1) img:要绘制文本的图像
(2) text:要绘制的文本字符串
(3) org:文本的左下角坐标(x, y)
(4) fontFace:字体类型(如cv2.FONT_HERSHEY_SIMPLEX)
(5) fontScale:字体大小
(6) color:文本的颜色(BGR格式)
(7) thickness:文本的粗细
8.2 示例
在一张空白图像上绘制一段绿色的文本
- img = np.zeros((512, 512, 3), np.uint8)
- cv2.putText(img, 'Hello, OpenCV!', (50, 256), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
- cv2.imshow('Text', img)
- cv2.waitKey(0)
- cv2.destroyAllWindows()
复制代码
9. 结论
通过本文的介绍,读者应该能够掌握使用cv2模块中的各种绘图函数,包括cv2.line()、cv2.rectangle()、cv2.circle()、cv2.ellipse()、cv2.polylines()和cv2.putText(),以便在图像上绘制各种基本图形。这些函数的灵活应用,可以满足各种图像处理和计算机视觉的需求。希望本文对大家在实际项目中有所帮助。
------------------------------------------------------------------------------------------------------------------------------------------
======== 御 坂 主 机 ========
>> VPS主机 服务器 前沿资讯 行业发布 技术杂谈 <<
>> 推广/合作/找我玩 TG号 : @Misaka_Offical <<
-------------------------------------------------------------------------------------------------------------------------------------------
|