全0矩阵 | shape:矩阵大小 dtype:数据类型 order:数据排列顺序,默认按列排序 |
直线 | 主要参数 ——pt1:直线起点 pt2:直线终点 color:线颜色 thickness:线宽 |
矩形 | 主要参数——pt1:左上角起点 pt2:右下角终点 color:颜色 thickness:线宽 |
圆形 | 主要参数——center:圆心 radius:半径 color:颜色 thickness:线宽 |
椭圆 | 主要参数——center:圆心 axes:(长轴长度,短轴长度) angle:偏转角度 start_angle:椭圆弧起始角度 end_angle:椭圆弧终止角度 |
示例:
矩阵:
import cv2
import numpy as np
import matplotlib.pyplot as plt
canvas = np.zeros((300,300,3),dtype="uint8")
#plt.imshow(canvas)
#plt.show()
cv2.imshow("Canvas",canvas)
cv2.waitKey(0)
直线:
import cv2
import numpy as np
import matplotlib.pyplot as plt
canvas = np.zeros((300,300,3),np.uint8)
##生成从(0,0)到(200,167)的线宽3的白色直线
cv2.line(canvas,(0,0),(200,167),255,3) ##其实对应的np.zeros((300,300),np.uint8)
###生成颜色为(155,155,155)的彩色直线
cv2.line(canvas,(2,4),(100,300),(155,155,155),5)
cv2.imshow("Canvas",canvas)
cv2.waitKey(0)
矩形:
import cv2
import numpy as np
import matplotlib.pyplot as plt
canvas = np.zeros((300,300,3),np.uint8)
##生成从(0,0)到(200,167)的线宽3的白色直线
cv2.rectangle(canvas,(20,20),(200,200),(55,255,155),5)
cv2.imshow("Canvas",canvas)
cv2.waitKey(0)
圆形:
import cv2
import numpy as np
import matplotlib.pyplot as plt
canvas = np.zeros((300,300,3),np.uint8)
##生成从(0,0)到(200,167)的线宽3的白色直线
cv2.circle(canvas,(150,150),50,(55,255,155),5)
cv2.imshow("Canvas",canvas)
cv2.waitKey(0)
椭圆:
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = np.zeros((512,512,3),np.uint8)#生成一个空彩色图像
cv2.ellipse(img,(256,256),(150,100),0,0,180,250,-1)
#注意最后一个参数-1,表示对图像进行填充,默认是不填充的,如果去掉,只有椭圆轮廓了
plt.imshow(img,'brg')
plt.show()
任意位置任意半径圆:
import cv2
import numpy as np
from matplotlib import pyplot as plt
canvas = np.zeros((400,400,3),np.uint8)
for i in range(0,25):
radius = np.random.randint(5,high = 200)#生成1个[5,200)的随机数
color = np.random.randint(0,high = 256,size = (3,)).tolist()#生成3个[0,256)的随机数
pt = np.random.randint(0,high = 300,size = (2,))#生成2个[0,300)的随机数
cv2.circle(canvas,tuple(pt),radius,color,-1)#画圆
plt.imshow(canvas,'brg')
plt.show()