学习目标函数 cv2.line()
, cv2.circle()
, cv2.rectangle()
, cv2.ellipse()
, cv2.putText()
etc
参数介绍
- img:需要绘制形状的图像
- color:颜色的形式. 对于BGR,将作为元组传递比如(255,0,0)表示蓝色.对于灰度图,只需要传递标量值.
- thickness:线或圆形等图像的厚度.如果对闭合图像像圆形传递“-1”,它将填充形状. 默认厚度 = 1.
- lineType:线的类型.默认情况下,它是8连接的.
cv2.LINE_AA
是适合曲线的抗锯齿线.
cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]])
- pt1:直线起点
- pt2:直线终点
代码 :
import numpy as np
import cv2# Create a black image
img = np.zeros((512,512,3), np.uint8)# Draw a diagonal blue line with thickness of 5 px
cv2.line(img,(0,0),(511,511),(255,0,0),5)
cv2.imshow('line',img)
cv2.waitKey()
文章图片
2绘制矩形
cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]])
- pt1:矩形左上角坐标
- pt2:矩形右下角坐标
代码 :
import numpy as np
import cv2# Create a black image
img = np.zeros((512,512,3), np.uint8)cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)cv2.imshow('line',img)
cv2.waitKey()
文章图片
3画圆 【Opencv|【Opencv-python】画图操作/画线/画矩形/画圆/画多边形/添加文字】
cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]])
- center:圆心位置
- radius:半径
代码 :
import numpy as np
import cv2# Create a black image
img = np.zeros((512,512,3), np.uint8)cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)
cv2.circle(img,(447,63), 63, (0,0,255), -1)cv2.imshow('line',img)
cv2.waitKey()
文章图片
4绘制椭圆
cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color[, thickness[, lineType[, shift]]])
- center:中心位置
- axes:轴长度(长轴长度,短轴长度)
- angle:椭圆在逆时针方向上的旋转角度
- startAngle:主轴顺时针方向测量的椭圆弧的起点
- endAngle:主轴顺时针方向测量的椭圆弧的终点
代码 :
import numpy as np
import cv2# Create a black image
img = np.zeros((512,512,3), np.uint8)cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1)cv2.imshow('line',img)
cv2.waitKey()
文章图片
5绘制多边形
cv2.polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]])
要绘制多边形,首先需要顶点坐标.将这些点转换为ROWSx1x2形状的数组,其中ROWS是顶点数,它应该是int32类型.
应用 绘制一个带有四个黄色顶点的小多边形.
代码 :
import numpy as np
import cv2# Create a black image
img = np.zeros((512,512,3), np.uint8)pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts = pts.reshape((-1,1,2))
cv2.polylines(img,[pts],True,(0,255,255))cv2.imshow('line',img)
cv2.waitKey()
文章图片
Note:
如果第三个参数为False,您将获得连接所有点的折线,而不是闭合形状.
cv2.polylines()可用于绘制多条线.只需创建要绘制的所有行的列表并将其传递给函数, 所有线条都将单独绘制.绘制一组行比为每行调用cv2.line()要好得多,速度更快.
6向图像添加文字 向图像添加文字:
cv2.putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])
要将文本放入图像中,您需要指定以下内容。
- text:要写入的文本数据
- org:您想要放置它的位置坐标(即数据开始的左下角)。
- fontFace:字体类型(检查cv2.putText()文档以获取支持的字体)
- fontScale:字体比例(指定字体大小)
应用 我们将在图像上写白色的opencv几个字母.
代码 :
import numpy as np
import cv2# Create a black image
img = np.zeros((512,512,3), np.uint8)font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2,cv2.LINE_AA)cv2.imshow('show',img)
cv2.waitKey()
文章图片
推荐阅读
- Django中的视图如何使用(开发示例 | Python)
- NumPy Python中的数据类型对象(dtype)
- java|一定不要让程序员拿到阿拉丁神灯 | 每日趣闻
- 软件测试培训机构柠檬班 积极应对疫情挑战化危为机
- python|从零开始用 Python 构建一个简单的神经网络
- 数据结构与算法python版|排序算法(选择排序)
- 数据结构与算法python版|排序算法(插入排序)
- python机器学习|从零到一实现神经网络(python)(一)
- python功能库|python第三方库--selenium库