目录
1、画线
2、画矩形
cv2.rectangle(img,(x0,y0),(x1,y1),color,size)
3、画圆
cv2.circle(img,center_circle_xy,R,color,-1)
4、画椭圆
cv2.ellipse(img,center_ellipse_xy,(100,50),0,0,360,color,-1)
5、画多边形
pts = np.array([[x0,y0],[x1,y1],[x2,y2],[x3,y3],[x4,y4]......],np.int32)
cv2.polylines(img,[pts],True,color,size)
6、添加文字
cv2.putText(img,'word',(x_position,y_position),font,font_size,color,line_size,cv2.LINE_AA)
这里的
img_black = np.zeros((500,500,3),np.uint8)
就是构建一个全黑的图片,其实就是500x500像素值的颜色值为(0,0,0)的图片
(需要注意的是:这里matlibplot和cv的颜色格式不一样,所以0,0,0表现得是黑色,我的另一篇博客有转换,但是这里其实没什么必要了)
import cv2
import numpy as np
import matplotlib.pyplot as plt
img_black = np.zeros((500,500,3),np.uint8)
img_black1 = np.zeros((500,500,3),np.uint8)
img_black2 = np.zeros((500,500,3),np.uint8)
img_black3 = np.zeros((500,500,3),np.uint8)
img_black4 = np.zeros((500,500,3),np.uint8)
img_black5 = np.zeros((500,500,3),np.uint8)
plt.subplot(231)
plt.title('line')
cv2.line(img_black,(0,0),(400,300),(255,255,255),5)
plt.imshow(img_black)
plt.subplot(232)
plt.title('rectangle')
cv2.rectangle(img_black1,(150,200),(350,450),(255,255,255),10)
plt.imshow(img_black1)
plt.subplot(233)
plt.title('circle')
cv2.circle(img_black2,(250,250),100,(255,255,255),-1)
plt.imshow(img_black2)
plt.subplot(234)
plt.title('ellipse')
cv2.ellipse(img_black3,(250,250),(100,50),0,0,360,(255,255,255),-1)
plt.imshow(img_black3)
plt.subplot(235)
plt.title('polygon')
pts1 = np.array([[50,10],[250,70],[150,200],[80,90],[70,50]],np.int32)
pts2 = np.array([[250,200],[450,270],[350,400],[280,290],[270,250]],np.int32)
cv2.polylines(img_black4,[pts1],True,(255,255,255),10)
cv2.polylines(img_black4,[pts2],False,(255,255,255),10)
plt.imshow(img_black4)
plt.subplot(236)
plt.title('text')
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img_black5,'love 33',(20,200),font,4,(255,255,255),15,cv2.LINE_AA)
cv2.putText(img_black5,'zhuzhu',(150,400),font,2,(255,255,255),5,cv2.LINE_AA)
plt.imshow(img_black5)
plt.show()
cv2.line(img,(x_start,y_start),(x_end,y_end),color,size)
-1表示向内填充
(100,50)表示椭圆的长边和短边的长度
0表示顺时针方向旋转
0,360表示旋转一周
True表示最后首尾相接成为闭合图片
cv2.LINE_AA表示的文字类型一般都是这个,没啥大用