1.绘制圆
cv.circle(img,centerpoint,r,color,thickness)
参数
img 要绘制圆形的图像
centerpoint,r 圆心和半径
color 线条颜色
thickness 线条宽度,为-1时生成闭合图案并补充颜色
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
#创建图像
img=np.zeros((512,512,3))
#在图像中绘制圆
cv.circle(img,(256,256),60,(255,0,255),-5)#5表示空心圆
#显示图像
plt.imshow(img[:,:,::-1])
plt.show()
2.绘制直线
img = cv2.line(img, pt1, pt2, color, thickness)
参数
img:画布。 pt1:线段的起点坐标。 pt2:线段的终点坐标。 color:绘制线段时的线条颜色。 thickness:绘制线段时的线条宽度。
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
#创建图像
img=np.zeros((512,512,3))
#在图像中绘制直线
cv.line(img,(0,0),(511,511),(255,0,0),5)
plt.imshow(img[:,:,::-1])
plt.show()
3.绘制矩形
cv.rectangle(img,leftupper,rightdown,color,thickness)
参数
img 要绘制矩形的图像
leftupper,rightdown 矩形的左上角和右下角坐标
color 线条颜色
thickness 线条宽度
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
img=np.zeros((512,512,3))
#在图像中绘制矩形
cv.rectangle(img,(100,100),(400,400),(0,255,0),5)
plt.imshow(img[:,:,::-1])
plt.show()
4.多边形的绘制
cv.polylines(img,pts,isClosed,color,thickness)
参数:
img:图像
pts:由多边形各个顶点的坐标组成的一个列表,这个列表是一个numpy的数组类型
isColsed:如果结果为true,表示一个闭合的多边形,false表示不闭合的多边形
color:线条颜色
thichness:线条宽度
实操代码如下:
import cv2 as cv
import matplotlib.pyplot as pl
import numpy as np
arr=np.zeros((300,300,3),np.uint8)#创建画布
pts=np.array([[100,50],[200,50],[250,250],[50,250]],np.int32)#按顺时针给出等腰梯形的四个顶点
img=cv.polylines(arr,[pts],True,(0,0,255),5)
pl.imshow(img[:,:,::-1])
pl.show()
5.绘制文字
cv.putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)参数img:画布
text:要绘制文字内容
org:文字在画布中的左下角坐标
fontFace:字体样式
fontScale:字体大小
color:字体颜色
thickness:文字线条宽度
lineType:线型(线的产生算法,有4和8两个值,默认为8)
bottomLeftOrigin:绘制文字时的方向,有True,flase默认为flase
字体参数:
cv.FONT_HERSHEY_COMPLEX #正常大小的serif字体
cv.FONT_HERSHEY_SIMPLEX #正常大小的sans-serif字体
cv.FONT_HERSHEY_DUPLEX #正常大小的serif字体,比FONT_HERSHEY_SIMPLEX复杂
cv.FONT_HERSHEY_PLAIN #小号的serif字体
cv.FONT_HERSHEY_COMPLEX_SMALL #FONT_HERSHEY_COMPLEX字体样式的简化版
cv.FONT_HERSHEY_SCRIPT_COMPLEX #是手写字体的进阶版
cv.FONT_HERSHEY_SCRIPT_SIMPLEX #手写字体
cv.FONT_HERSHEY_TRIPLEX #正常大小的serif字体,比FONT_HERSHEY_COMPLEX更复杂
cv.FONT_ITALIC #斜体
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
img=np.zeros((512,512,3))
#在图像中绘制文字
cv.putText(img,"cv2",(100,150),cv.FONT_HERSHEY_COMPLEX,5,(255,255,255),3)
plt.imshow(img[:,:,::-1])
plt.show()