下面我将为你详细讲解 OpenCV 实现绘图功能的完整攻略,分为以下几个部分进行讲解:
-
环境搭建和安装 OpenCV 库。
-
使用 OpenCV 画图形,包括直线、圆、矩形、椭圆、多边形等。
-
改变图像颜色和填充样式。
-
在图像中添加文字。
具体步骤如下:
一、环境搭建和安装 OpenCV 库
- 安装 OpenCV 库:
首先需要在自己的电脑上安装 OpenCV,安装过程中需要注意版本匹配问题,建议使用 pip 安装最新的版本:
pip install opencv-python-headless
如果你使用的是 Jupyter Notebook,则需要安装以下版本:
pip install opencv-python-headless==4.4.0.46
如果该命令无法正常安装,可前往 OpenCV 官网 下载对应版本的 OpenCV 库并手动安装。
二、使用 OpenCV 画图形
- 画直线
使用 OpenCV line()
函数可以用一条直线连接起两个点。以下是一个简单的绘制直线的示例:
import numpy as np
import cv2
# 创建一张黑色的图片
img = np.zeros((512,512,3), np.uint8)
# 绘制一条白色直线
img = cv2.line(img,(0,0),(511,511),(255,255,255),5)
- 画圆
使用 OpenCV 的 circle()
函数可以在一个给定中心位置画一个圆。以下是一个绘制圆形的示例:
import numpy as np
import cv2
# 创建一张黑色的图片
img = np.zeros((512,512,3), np.uint8)
# 绘制一个中心在(256,256),半径为100的蓝色圆
img = cv2.circle(img,(256,256), 100, (255,0,0), -1)
- 画矩形
使用 OpenCV 的 rectangle()
函数可以在一个给定矩形中绘制一个矩形。以下是一个绘制矩形的示例:
import numpy as np
import cv2
# 创建一张黑色的图片
img = np.zeros((512,512,3), np.uint8)
# 绘制一个左上角在 (100,100),右下角在 (300,300),颜色为绿色的矩形
img = cv2.rectangle(img,(100,100),(300,300),(0,255,0),3)
- 画椭圆
使用 OpenCV 的 ellipse()
函数可以在一个给定矩形中绘制一个椭圆或圆弧。以下是一个绘制椭圆的示例:
import numpy as np
import cv2
# 创建一张黑色的图片
img = np.zeros((512,512,3), np.uint8)
# 绘制一个中心在 (256,256),长轴半径为 100,短轴半径为 50,倾斜角度为 0 的蓝色椭圆
img = cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1)
- 画多边形
使用 OpenCV 的 polylines()
函数可以绘制多边形。以下是一个绘制多边形的示例:
import numpy as np
import cv2
# 创建一张黑色的图片
img = np.zeros((512,512,3), np.uint8)
# 定义多边形的四个顶点(左上,右上,右下,左下)
pts = np.array([[10,50],[400,50],[300,400],[50,480]], np.int32)
# 使用 'True' 表示闭合多边形
pts = pts.reshape((-1,1,2))
# 绘制黄色的多边形
img = cv2.polylines(img,[pts],True,(0,255,255))
三、改变图像颜色和填充样式
在绘制图形时可以通过设置颜色和填充样式来改变图像效果。以下是一些基本的设置:
- 改变颜色:
import numpy as np
import cv2
# 创建一张黑色的图片
img = np.zeros((512,512,3), np.uint8)
# 绘制一条红色直线
img = cv2.line(img,(0,0),(511,511),(0,0,255),5)
# 绘制一个绿色的矩形
img = cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)
# 绘制一个蓝色的圆形
img = cv2.circle(img,(447,63), 63, (255,0,0), -1)
# 绘制一个紫色的椭圆
img = cv2.ellipse(img,(256,256),(100,50),0,0,180,(255,0,255),-1)
# 定义多边形的四个顶点(左上,右上,右下,左下)
pts = np.array([[10,50],[400,50],[300,400],[50,480]], np.int32)
pts = pts.reshape((-1,1,2))
# 绘制黄色的多边形
img = cv2.polylines(img,[pts],True,(0,255,255))
# 显示图像
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
- 设置填充样式:
import numpy as np
import cv2
# 创建一张黑色的图片
img = np.zeros((512,512,3), np.uint8)
# 设置空心样式
img = cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)
# 设置实心样式
img = cv2.rectangle(img,(10,10),(100,100),(0,0,255),-1)
# 显示图像
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
四、在图像中添加文字
在 OpenCV 中添加文字需要使用 putText()
函数,以下是一个添加文字的示例:
import numpy as np
import cv2
# 创建一张黑色的图片
img = np.zeros((512,512,3), np.uint8)
# 绘制一条白色直线
img = cv2.line(img,(0,0),(511,511),(255,255,255),5)
# 添加文字
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2,cv2.LINE_AA)
# 显示图像
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
以上就是 OpenCV 实现绘图功能的完整攻略,包括环境搭建和库安装、基本图形的绘制、颜色填充和文字添加等内容。希望对你有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:OpenCv实现绘图功能 - Python技术站