此处要花几何图形,我们需要用到如下几个函数:
cv2.line 画线函数
cv2.circle 画圆函数
cv2.ellipse 画椭圆
cv2.rectangle 画矩形
1、画线
img=cv2.line(img,(0,0),(500,500),(255,0,0),5)参数(要显示的图片名,起始坐标,终点坐标,颜色,线条宽度)
2、画圆
img=cv2.circle(img,(250,250),100,(255,255,0),1)参数(要显示的图片,圆心坐标,半径,颜色,线条宽度)
3、画椭圆
img=cv2.ellipse(img,(250,250),(100,50),180,0,180,(255,0,0),-1)这里的参数会稍微复杂些(图片名,圆心坐标,(长轴长度,短轴长度),旋转角度,开始角度,结束角度,颜色,线条宽度)
注,当线条宽度为-1时,表示图像为填充模式
4、画矩形
img=cv2.rectangle(img,(100,100),(200,200),(255,0,0),-1)
参数(图片名,对角线开始坐标,对角线终止坐标,颜色,线宽)
这里用到了对角线上的两个点来确定一个矩形的方法
5、多边形
pts=np.array([[100,100],[150,80],[80,70],[100,10]],np.int32) pts=pts.reshape(-1,1,2) img=cv2.polylines(img,[pts],True,(255,0,0))第一步,确定多边形的顶点,这里我们输入了四个顶点
第二步,
如果等于-1的话,那么Numpy会根据剩下的维度计算出数组的另外一个shape属性值。
第三不,为polvlines绑定数据
6、输出文字
font=cv2.FONT_HERSHEY_COMPLEX 设置字体 cv2.putText(img,"OpenCV",(0,400),font,4,(255,255,255))此函数的参数(图片名,显示的文字,文字的坐标,字体,字号,颜色)
全部代码如下:
import cv2 import numpy as np img=np.zeros((500,500,3),np.uint8) #绘制一张500*500的图片 img=cv2.line(img,(0,0),(500,500),(255,0,0),5) img=cv2.line(img,(0,500),(500,0),(255,0,0),5) img=cv2.circle(img,(250,250),100,(255,255,0),1) font=cv2.FONT_HERSHEY_COMPLEX cv2.putText(img,"OpenCV",(0,400),font,4,(255,255,255)) img=cv2.ellipse(img,(250,250),(100,50),180,0,180,(255,0,0),-1) img=cv2.rectangle(img,(100,100),(200,200),(255,0,0),-1) pts=np.array([[100,100],[150,80],[80,70],[100,10]],np.int32) pts=pts.reshape(-1,1,2) img=cv2.polylines(img,[pts],True,(255,0,0)) cv2.imshow('image',img) cv2.waitKey(0)
实现效果如图所示