opencv绘图函数

cv2.line() 画线

画线只需要知道线的起点和终点

import numpy as np
import cv2
'''
• img: 你想 绘制图形的 幅图像。
• color: 形状的颜色。以RGB为例  需要传入一个元组BGR 例如 255,0,0 
   代表蓝色,第一个是蓝色通道,第二个是绿色通道,第三个是红色通道。对于灰度图只需要传入灰度值。
• thickness 线条的粗细。如果给一个闭合图形 置为 -1  那么这个图形就会被填充。 默认值是 1.
• linetype 线条的类型, 8 连接,抗锯齿等。  默认情况是8 连接。cv2.LINE_AA
   为抗锯齿  这样看起来会非常平滑。
'''
# Create a black image
img = np.zeros((512, 512, 3), np.uint8)

# Draw a diagonal blue line with thickness of 5 px
cv2.line(img, pt1=(0, 0), pt2=(511, 511), color=(255, 255, 255), thickness=5)  # pt1, pt2, color, thickness
# cv2.polylines() 可以 用来画很多条线。只需要把想 画的线放在一 个列表中, 将 列表传给函数就可以了。每条线 会被独立绘制。 这会比用 cv2.line() 一条一条的绘制 要快一些。

cv2.imshow('img', img)
cv2.waitKey()
cv2.destroyAllWindows()

cv2.ploylines()画多个线段。

画五角星 

import cv2
import numpy as np

img = np.zeros((500, 500, 3))  # 白色背景
color = (255, 255, 255)  # 白色
# ------ 五角星的顶点 ------
pts = np.array([[70, 190],
                [222, 190],
                [280, 61],
                [330, 190],
                [467, 190],
                [358, 260],
                [392, 380],
                [280, 308],
                [138, 380],
                [195, 260]])
# pts = pts.reshape((-1, 1, 2))  # reshape为 10x1x2 的 numpy.ndarray
print(pts.shape)  # (10, 1, 2)

# ------ 绘制图形 ------
cv2.polylines(img,[pts],True,color,5)

cv2.imshow('image', img)
cv2.waitKey()
cv2.destroyAllWindows()

opencv绘图函数_第1张图片

cv3.rectangle() 画矩形

矩形需要左上角坐标和右下角坐标

import numpy as np
import cv2

img = np.zeros((512, 512, 3), np.uint8)
cv2.rectangle(img, (200, 200), (400, 400), (0, 0, 255), 3)

cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

 cv2.circle() 画圆

圆需要中心坐标和半径

import cv2
import numpy as np
canvas=np.zeros([300,300,3])
radius = np.random.randint(50, high=100)
color = np.random.randint(0, high=256, size=(3,)).tolist()
pt = np.random.randint(20, high=200, size=(2,))
cv2.circle(canvas, tuple(pt), radius, color, -1)
cv2.imshow("Canvas", canvas)
cv2.waitKey()
import numpy as np
import cv2

img = np.zeros((512, 512, 3), np.uint8)
cv2.circle(img, (256, 256), 100, (0, 0, 255), 3)

cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

你可能感兴趣的:(opencv,opencv,python)