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()

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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一壶浊酒..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值