1.3 GUI - 绘图方法

2019-03-13  本文已影响0人  sumpig

在绘图方法中,有一些通用的参数如下:

线条

要画一条线,您需要给定线的起始和结束坐标。我们将创建一个黑色图像,并在其上从左上角到右下角绘制一条蓝线。

import numpy as np
import cv2

# Create a black image
img = np.zeros((512,512,3), np.uint8)

# Draw a diagonal blue line with thickness of 5 px
img = cv2.line(img,(0,0),(511,511),(255,0,0),5)

矩形

要绘制矩形,需要使用矩形的左上角和右下角。这次我们将在图像的右上角绘制一个绿色矩形。

img = cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)

要画一个圆,你需要它的中心坐标和半径。我们将在上面绘制的矩形内绘制一个圆。

img = cv2.circle(img,(447,63), 63, (0,0,255), -1)

椭圆

要绘制椭圆,我们需要传递几个参数。一个参数是中心位置(x,y)。下一个参数是轴长度(长轴长度、短轴长度)。角度是椭圆逆时针旋转的角度。startangle 和 endangle表示从长轴顺时针方向测量的椭圆弧的起点和终点。也就是说,给定值0和360表示整个椭圆。下面的示例在图像中心绘制一个半椭圆。

img = cv2.ellipse(img,(256,256),(100,50),0,0,270,(255,255,255),-1)
# 0,0,270 分别代表
# axes:椭圆尺寸(即长短轴)
# angle:旋转角度(顺时针方向)
# startAngle:绘制的起始角度(顺时针方向)

多边形

要绘制多边形,首先需要顶点的坐标。然后把这些顶点变成 (定点数, 1, 2) 维的矩阵,它的类型应为Int32。在这里,我们画一个有四个黄色顶点的小多边形。

# 定义四个顶点坐标
pts = np.array([[10, 5],  [50, 10], [70, 20], [20, 30]], np.int32)
# 顶点个数:4,矩阵变成4*1*2维
pts = pts.reshape((-1, 1, 2))
cv2.polylines(img, [pts], True, (0, 255, 255))

cv2.polylines() 的参数3如果是False的话,多边形就不闭合。

如果需要绘制多条直线,使用cv2.polylines()要比cv2.line()高效很多,例如:

line1 = np.array([[100, 20],  [300, 20]], np.int32).reshape((-1, 1, 2))
line2 = np.array([[100, 60],  [300, 60]], np.int32).reshape((-1, 1, 2))
line3 = np.array([[100, 100],  [300, 100]], np.int32).reshape((-1, 1, 2))
cv2.polylines(img, [line1, line2, line3], True, (0, 255, 255))

添加文字

文字添加需要指定以下参数:

我们将添加一个白色文字

cv2.putText(img,'OpenCV',(10,500), font, 1,(255,255,255),4,cv2.LINE_AA)
上一篇下一篇

猜你喜欢

热点阅读