python-opencv在图片中绘制各种图形
1.绘制直线
2.绘制矩形
3.绘制圆
4.绘制椭圆
5.绘制多边形
6.嵌入文字
实现代码都在下面了,代码中参数做了简单注释
import copy
import math
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
import os
import cv2
def cv_show(name,img):
cv2.imshow(name,img)
#cv2.waitKey(0),接收0,表示窗口暂停
cv2.waitKey(0)
#销毁所有窗口
cv2.destroyAllWindows()
'''
礼帽运算:原图-开运算
黑帽运算:闭运算-原图
'''
img=np.zeros((512,512,3),np.uint8)
## 1.绘制直线
cv2.line(img,
(0,0),#左上角坐标
(256,256),#右下角坐标
(255,0,0),#颜色
5)#线条粗细
## 2.绘制矩形
cv2.rectangle(img,(0,0),#左上角坐标
(256,256),#右下角坐标
(100,100,0),#颜色
5)#线条粗细
## 3.绘制圆
cv2.circle(img,
(255,255),#中心坐标
40, #半径
(255,0,0),
5)#线条粗细
## 4.绘制椭圆
cv2.ellipse(
img,
(256, 256),
(256, 128),
0, # 逆时针旋转角度
0, # 开始角度
360, # 结束角度
(0, 0, 255),
-1
)
pts=np.array([
[50,50],#多边形连接节点坐标
[400,100],
[100,400]
])
## 5.绘制多边形
cv2.polylines(img,[pts],True,(255,0,0),5)
## 6.嵌入文字
font=cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,
'I like opencv',
(50,300),#文字坐标
font,#字体选择
1,#字体大小
(140,140,0)#字体颜色
)
img_line=img[:,:,::-1]
plt.imshow(img_line)
plt.show()
os.system("pause")
运行结果如下: