图像入门2
1. 大纲
1、使用OpenCV
绘制不同的几何形状
2、学习以下功能:cv.line()
,cv.circle()
,cv.rectangle()
,cv.sllipse()
,cv.putText()
等
2. 常见参数
img
:绘制形状的图像
color
:形状的颜色,作为元组传递
厚度:线或圆等的粗细。对闭合图形传递-1,填充形状,默认厚度为1
lineType
:线的类型,是否为8连接线,抗锯齿线等。cv.LINE_AA
。
3. 绘制各类几何图形
要绘制一条线,传递线开始和结束的坐标。创建一个黑色的图像,并从左上角到右下角绘制一条直线。
# 绘制一条厚度为5的蓝色对角线
cv.line(img, (0, 0), (511, 511), (48, 137, 186), 5)
要绘制一个矩形,传递矩形的左上角和右下角的坐标,其他参数类似。
# 绘制矩形
cv.rectangle(img, (384, 0), (510, 128), (156, 123, 212), 3)
要绘制一个圆,需要确定其中心和半径,其他参数类似。
# 绘制圆形
cv.circle(img, (447, 63), 63, (64, 172, 255), -1)
要绘制一个椭圆,需要确定中心的坐标,和长短轴的长度,angle
是椭圆沿逆时针方向旋转的角度。startAngle
和EndAngle
表示从主轴沿顺时针方向测量的椭圆弧的开始和结束。即给出0和360给出完整的椭圆。
# 绘制椭圆
cv.ellipse(img, (256, 256), (100, 50), 0, 0, 360, (112, 24, 36), -1)
如果要绘制多边形,首先需要确定各个顶点的坐标,创建一个ROW*1*2
的数组,其中ROW
是顶点数,并且类型为int32
。
# 绘制多边形
pts = np.array([[100, 50], [50, 230], [270, 480], [480, 100]], np.int32)
pts = pts.reshape((-1, 1, 2))
cv.polylines(img, [pts], True, (0, 255, 255))
如果要绘制文本,首先需要设置字体格式font
,并调用cv.putText()
函数,第一个参数是图像名称,第二个参数是文本内容,第三个参数是文本的起始位置,第四个参数是字体的格式,第五个参数是字体的大小,第六个参数是字体的颜色。为了获得更好的外观,我们使用lineType=cv.LINE.AA
# 绘制文本
font = cv.FONT_HERSHEY_COMPLEX
cv.putText(img, 'discipline', (10, 500), font, 2, (255, 255, 255), 2, cv.LINE_AA)
在完成上述代码之后,效果如下图所示:
4. 附录(完整代码)
import numpy as np
import cv2 as cv
if __name__ == "__main__":
# 创建黑色的图像
img = np.zeros((512, 512, 3), np.uint8)
# 绘制一条厚度为5的蓝色对角线
cv.line(img, (0, 0), (511, 511), (48, 137, 186), 5)
# 绘制矩形
cv.rectangle(img, (384, 0), (510, 128), (156, 123, 212), 3)
# 绘制圆形
cv.circle(img, (447, 63), 63, (64, 172, 255), -1)
# 绘制椭圆
cv.ellipse(img, (256, 256), (100, 50), 0, 0, 360, (112, 24, 36), -1)
# 绘制多边形
pts = np.array([[100, 50], [50, 230], [270, 480], [480, 100]], np.int32)
pts = pts.reshape((-1, 1, 2))
cv.polylines(img, [pts], True, (0, 255, 255))
# 绘制文本
font = cv.FONT_HERSHEY_COMPLEX
cv.putText(img, 'discipline', (10, 500), font, 2, (255, 255, 255), 2, cv.LINE_AA)
cv.imshow('drawing', img)
cv.waitKey(0)
cv.destroyAllWindows()
标签:入门,img,pts,图像,np,绘制,cv,255
From: https://www.cnblogs.com/chickchick/p/17437792.html