初始化
- 创建三通道矩阵的黑色图像,
- img=np.zeros((512,512,3),np.uint8),width*height,颜色通道
直线
- cv2.line(img,(0,0),(511,511),(255,0,0),5)
- 在黑色图像上绘图,指定直线起点和终点,还有线条颜色(BGR),字体粗细程度
矩形
- cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)
- 在黑色图像上绘图,指定起点和终点,边框颜色,线条粗细。
圆形
- cv2.circle(img,(447,447),63,(0,0,255),-1)
- 指定圆形的圆形和半径,曲线颜色,最后参数为-1是填充的圆形,为其他数是挖空的圆。
椭圆形
- cv2.ellipse(img,(256,256),(100,50),0,0,360,255,-1)
- 一个参数是中心位置(x,y)。下一个参数是轴长度(长轴长度,短轴长度)。角是椭圆逆时针旋转的角度。开始角度和角度表示从主轴顺时针方向测量的椭圆弧的起点和终点。即给出值0和360给出完整的椭圆
多边形
- cv2.polylines(img,[pts],True,(0,255,255))
- 首先你需要顶点的坐标。将这些点组成一个形状数组ROWSx1x2其中ROWS是顶点数,它应该是类型int32
文本
- font = cv2.FONT_HERSHEY_SIMPLEX
- cv2.putText(img,‘OpenCV’,(10,255), font, 4,(255,255,255),2,cv2.LINE_AA)
- 要在图像中放置文本,您需要指定以下内容。
- 要写入的文本数据
- 您想要放置它的位置坐标(即数据开始的左下角)。
- 字体类型(检查cv2.putText()支持字体的文档)
- 字体比例(指定字体大小)
- 像颜色、厚度、线型等常规的东西。
测试
"""drawing functions in opencv"""
"""line"""
import numpy as np
import cv2
img=np.zeros((512,512,3),np.uint8)
cv2.line(img,(0,0),(511,511),(255,0,0),5)
cv2.line(img,(511,0),(0,511),(255,0,0),5)
cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)
cv2.rectangle(img,(0,0),(128,128),(0,255,0),3)
cv2.rectangle(img,(0,384),(128,510),(0,255,0),3)
cv2.rectangle(img,(384,384),(510,510),(0,255,0),3)
cv2.circle(img,(447,63),63,(0,0,255),-1)
cv2.circle(img,(63,63),63,(0,0,255),-1)
cv2.circle(img,(63,447),63,(0,0,255),-1)
cv2.circle(img,(447,447),63,(0,0,255),-1)
cv2.ellipse(img,(256,256),(100,50),0,0,360,255,-1)
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))
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'OpenCV',(10,255), font, 4,(255,255,255),2,cv2.LINE_AA)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
运行截图: