def paint():
# cv2.line(),cv2.circle(),cv2.rectangle(), cv2.ellipse(),cv2.putText()
# 上面所有的这些绘图函数需要设置下面这些参数: • img:你想要绘制图形的那幅图像。 • color:形状的颜色。以RGB为例,需要传入一个元组,
# 例如: (255,0,0) 代表蓝色。对于灰度图只需要传入灰度值。 • thickness:线条的粗细。如果给一个闭合图形设置为 -1,那么这个图形 就会被填充。
# 默认值是 1. • linetype:线条的类型, 8连接,抗锯齿等。默认情况是8连接。cv2.LINE_AA 为抗锯齿,这样看起来会非常平滑。
img = np.zeros((512, 512, 3), np.uint8)
# 画线 需传入起点和终点
cv2.line(img, (0, 0), (511, 511), (255, 0, 0), 5)
# 画矩形 需传入左上顶点和右下顶点
cv2.rectangle(img, (100, 100), (150, 150), (255, 255, 0), 5)
# 画圆 要画圆的话,只需要指定圆形的中心点坐标和半径大小。我们在上面的矩形中画一个圆。
cv2.circle(img, (125, 125), 25, (255, 0, 255), 0)
# 画椭圆比较复杂,我们要多输入几个参数。一个参数是中心点的位置坐标。
# 下一个参数是长轴和短轴的长度。椭圆沿逆时针方向旋转的角度。椭圆弧演 顺时针方向起始的角度和结束角度,如果是 0 很 360,就是整个椭圆
cv2.ellipse(img, (200, 200), (100, 50), 0, 0, 180, (255, 255, 10), -1)
# 画多边形,需要指点每个顶点的坐标。用这些点的坐标构建一个大小等于 行数 X1X2 的数组,行数就是点的数目。
# 这个数组的数据类型必须为 int32。 这里画一个黄色的具有四个顶点的多边形。
pts = np.array([[10, 5], [20, 30], [70, 20], [50, 10]], np.int32)
a = np.roll(pts, 2)
print(a)
pts = pts.reshape((-1, 2, 2)) # 多维思维, 行列行列
a = a.reshape((-1, 2, 2))
cv2.polylines(img, pts, True, (255, 0, 255), 2)
cv2.polylines(img, a, True, (255, 0, 255), 2)
# 在图片上添加文字 要在图片上绘制文字,你需要设置下列参数: • 你要绘制的文字 • 你要绘制的位置 • 字体类型(通过查看 cv2.putText() 的文档找到支持的字体)
# • 字体的大小 • 文字的一般属性如颜色,粗细,线条的类型等。为了更好看一点推荐使用 linetype=cv2.LINE_AA。
cv2.putText(img, "sfg", (100, 500), cv2.FONT_HERSHEY_COMPLEX, 4, (0, 255, 255), cv2.LINE_AA)
cv2.imshow("img", img)
cv2.waitKey(0)
return