import numpy as np
import cv2 as cv
#创建黑色的图像
img = np.zeros((512,512,3),np.uint8)
#创建一条厚度为5的蓝色对角线
cv.line(img,(0,0),(511,511),(255,0,0),5)
#绘制矩形
cv.rectangle(img,(384,0),(510,128),(0,255,0),3)
#画圆圈 参数:中心位置(x,y);半径 ;-1表示填充 16:数越大,边越圆滑
cv.circle(img,(477,63),63,(0,0,255),-1,16)
#画椭圆 中心点(x,y),(长轴半径,短轴半径),倾斜角度,开始角度,结束角度,颜色,线性
cv.ellipse(img,(256,256),(100,50),90,0,180,[0,255,0],-1)
#画多边形 定点坐标,将这些点组成形状为ROWSx1x2的数组 类型为int32
pts = np.array([[10,5],[30,30],[100,50],[50,10],[100,200]],np.int32)
pts = pts.reshape((-1,1,2))
cv.polylines(img,[pts],True,(0,255,255),2) #第三个参数为False,非闭合图形;cv.polylines()用于绘制多条线
#填充多边形
cv.fillPoly(img,[pts],[0,0,150])
#向图像添加文本,#中文会乱码
#图片,文本内容,左下角坐标,字体,大小,颜色,厚度,
font = cv.FONT_HERSHEY_SIMPLEX
cv.putText(img,'OpenCV',(10,500),font,4,(255,255,255),2,cv.LINE_AA) #linetype = cv.LINE_AA
#显示图像
cv.imshow('image',img)
#保存图片
cv.imwrite('image.png',img)
cv.waitKey(0)
cv.destroyALLWindows()