IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> OpenCv-Python学习笔记(二):绘图函数 -> 正文阅读

[人工智能]OpenCv-Python学习笔记(二):绘图函数

demo

import cv2
import numpy as np

#创建一个全黑的图像
img = np.zeros((512,512,3),np.uint8)
#画一条线
cv2.line(img,(0,0),(511,511),(255,0,0),5)
#画一个矩形
cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)
#画一个圆
cv2.circle(img,(447,63), 63, (0,0,255),1)
#画椭圆
cv2.ellipse(img,(256,256),(100,50),0,0,180,(0,255,0),-1)
#画多边形
pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
# 这里 reshape 的第一个参数为-1, 表明这一维的长度是根据后面的维度的计算出来的。
#可以不用这一步也可以画多边形
pts = pts.reshape((-1,1,2))
cv2.polylines(img,[pts],True,(0,255,255))
#在图片上添文字
font=cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2)
#显示图片
cv2.imshow("image",img)
cv2.waitKey()

在这里插入图片描述

画线

cv2.line(img,(0,0),(511,511),(255,0,0),5)

第一个参数img是一张图片,表示我们将要在这张图片上画一条线,可以理解为一个画布。
第二个参数(0,0)表示这条线的起始点坐标。
第三个参数(511,511)表示这条线的终点坐标。
第四个参数(255,0,0)表示这条线的颜色,例子中的(255,0,0)表示R为255,G为0,B为0即红色。
第五个参数5表示这条线的粗细即宽度。

画矩形

#画一个矩形
cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)

第一个参数img是一张图片,表示我们将要在这张图片上画一条线,可以理解为一个画布。
第二个参数(384,0)表示矩形左上角顶点的坐标。
第三个参数(510,128)表示矩形右下角顶点的坐标。
第四个参数(0,255,0)表示矩形线条的颜色。
第五个参数3表示矩形线条的粗细即宽度。

画圆

#画一个圆
cv2.circle(img,(447,63), 63, (0,0,255), -1)

第一个参数img是一张图片,表示我们将要在这张图片上画一条线,可以理解为一个画布。
第二个参数(447,63)表示圆心的坐标。
第三个参数63表示圆的半径。
第四个参数(0,0,255)表示圆的颜色。
第五个参数-1表示圆线条的宽度。
注意:第五个参数为负数的时候,不管值是多少,只要是负数,都表示画的是一个实色的圆,如果为正数,代表着圆的粗细即宽度。

画椭圆

#画椭圆
cv2.ellipse(img,(256,256),(100,50),0,0,180,(255,0,0),-1)

第一个参数ima是一张图片,表示我们将要在这张图片上画一条线,可以理解为一个画布。
第二个参数(256,256)表示圆心的坐标。
第三个参数(100,50)表示椭圆长轴和短轴的长度。
第四个参数0表示整个椭圆沿中心点旋转的角度。
第五个参数0表示圆弧沿顺时针方向的起始角度。
第六个参数180表示圆弧沿顺时针方向的结束角度。
注:本例中第五个参数为0,第六个参数为180,表示半个椭圆
第七个参数(255,0,0)表示椭圆的颜色。
第八个参数-1的含义与画圆函数的第五个参数相同。

画多边形

#画多边形
pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)

创建一个四行两列二维数组,指定多边形每个点的坐标,注意,数据类型必须是int32。二维数组的行数表示点的个数。

将pts写成这样会比较容易理解一点。
[ 
	[10,5],
	[20,30],
	[70,20],
	[50,20]
]
pts = pts.reshape((-1,1,2))
# 这里 reshape 的第一个参数为-1, 表明这一维的长度是根据后面的维度的计算出来的。

这里将二维数组转换为三维数据,如下所示,表示四个一行两列的二维数组。

[ 
	[ 
		[10,5]
	],
	[
	 	[20,30] 
	],
	[ 
	 	[70,20]
	],
	[
		 [50,20] 
	]
]

三维数组不好理解,实际上,不需要将二维数组转换为三维数组也可以画多变形,书上没有解释,官方文档也没有解释,我不太明白为什么需要加这一步。留一个疑问,以后理解了再来补充。

cv2.polylines(img,[pts],True,(0,255,255))

第一个参数img是一张图片,表示我们将要在这张图片上画一条线,可以理解为一个画布。
第二个参数[pts]表示多边形每个点的坐标的列表。
第三个参数True表示多边形是否闭合(首尾是否相连),True:闭合,False:不闭合。
第四个参数(0,255,255)表示多边形线条的颜色。
注意:cv2.polylines() 可以被用来画很多条线。只需要把想要画的线放在一个列表中,将这个列表传给函数就可以了。每条线都会被独立绘制。这会比用cv2.line() 一条一条的绘制要快一些。

在图片上添文字

#在图片上添文字
font=cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2)

第一个参数img是一张图片,表示我们将要在这张图片上画一条线,可以理解为一个画布。
第二个参数’OpenCV’表示文字的内容。
第三个参数(10,500)表示文字的起始位置。
第四个参数font表示文字的字体。
第五个参数4表示文字的大小即字号。
第六个参数(255,255,255表示文字的颜色。
第七个参数2表示文字线条的粗细。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-02-19 01:09:21  更:2022-02-19 01:12:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 18:46:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码