Python-OpenCV学习(五):二维绘图
转载请注明出处:danscarlett的博客园
参考资料:
lkiller_hust《OpenCV-Python[第二章]——画图函数》
目录
初始化画布
画线
画圆
其它图像
上述函数具有如下的相同类型的参数:
- img: 背景图像
- color: 形状的颜色。格式为BGR,是一个元组,如(255,0,0)表示蓝色。如果是灰度图像则只需要传入灰度值。
- thickness:厚度,默认值为1,如果对封闭图形传入-1,则会填充整个图形。
- lineType: 线的类型,默认是8-连通,传入cv2.LINE_AA则是反锯齿,反锯齿在画曲线时看起来会更平滑。
下文中不再赘述以上参数了。
1.画布
np.zeros(shape, dtype=float, order='C')
函数功能:返回一个给定形状、类型的0-矩阵
参数:
- shape 【int或者int序列】新建矩阵的形状。例如(2,3)、2。
- dtype 【元素数据类型,可选】矩阵元素的数据类型。例如`numpy.int8`。默认是 `numpy.float64`。
- order 【{'C', 'F'}, 可选】是否在内存存储C-或Fortran-连续的多维数据(按照行或列的顺序)。
例子:
# -*- coding: utf-8 -*- import cv2 import numpy as np # 创建一块512*512大小的黑色画布 img = np.zeros((512,512,3),np.uint8) cv2.imshow('-',img) cv2.waitKey(0)
备注:
#创建一块白色的画布 img = np.zeros((512,512,3),np.uint8)+255
2.画线
cv2.line(img, pt1, pt2, color, thickness=1, lineType=8, shift=0)
功能:在img上画一个从起点pt1到起点pt2的直线
例子:
# -*- coding: utf-8 -*- import cv2 import numpy as np # 创建画布 img = np.zeros((512,512,3),np.uint8)+255 #画线:指定起点、终点、线的颜色、线的粗细程度。其它参数默认即可。 cv2.line(img,(0,0),(512,512),[0,0,0],3) cv2.imshow('-',img) cv2.waitKey(0)
3.画矩形
cv2.rectangle(img,pt1,pt2,color,thickness=None,lineType=None,shift=None)
例子:
# -*- coding: utf-8 -*- import cv2 import numpy as np # 创建画布 img = np.zeros((512,512,3),np.uint8)+255 #画矩阵 cv2.rectangle(img,(100,100),(412,412),[0,0,0],1) cv2.imshow('-',img) cv2.waitKey(0)
结果:
3.画圆
circle(img, center, radius, color, thickness=None, lineType=None, shift=None)
功能:以center为圆心,以radius为半径画圆。
例子:
# -*- coding: utf-8 -*- import cv2 import numpy as np # 创建画布 img = np.zeros((512,512,3),np.uint8)+255 cv2.rectangle(img,(100,100),(412,412),[0,0,0],1)
cv2.circle(img,(255,255),100,[0,0,0],1)
cv2.imshow('-',img) cv2.waitKey(0)
4.其它图像
椭圆:
以上是我目前会用到的,后续遇到其它问题还会补充这篇随笔。
欢迎关注我的微博:@机器学习日记
https://weibo.com/6382778167/profile?rightmod=1&wvr=6&mod=personinfo