openmv模块学习笔记:如何在openmv上面画圆形

以下为例子:随机生成圆形

# 绘制圆形
#
# 这个例子展示了如何使用OpenMV内置的画圆形功能。
# This example demonstrates how to use the built - in circle drawing function of OpenMV.

# 导入sensor模块,用于控制OpenMV的摄像头传感器
import sensor
# 导入time模块,用于处理时间相关操作,如计时和延时
import time
# 从random模块中导入randint函数,用于生成随机整数
from random import randint

# 重置摄像头传感器,使其恢复到初始状态,确保后续设置能正常生效
sensor.reset()
# 设置摄像头的像素格式为RGB565,该格式可提供彩色图像
# 也可将其设置为GRAYSCALE以获取灰度图像
sensor.set_pixformat(sensor.RGB565)  # or GRAYSCALE...
# 设置摄像头的帧大小为QVGA,这是一种常见的分辨率
# 也可选择QQVGA等其他分辨率
sensor.set_framesize(sensor.QVGA)  # or QQVGA...
# 让摄像头跳过前2000毫秒(即2秒)的图像帧
# 目的是让摄像头有足够时间适应光照等环境条件,使前面设置的参数生效
sensor.skip_frames(time=2000)
# 创建一个时钟对象,用于跟踪帧率(每秒处理的帧数)
clock = time.clock()

# 进入一个无限循环,持续进行图像采集和圆形绘制操作
while True:
    # 更新时钟对象,记录当前帧的开始时间,用于计算帧率
    clock.tick()

    # 拍摄一张快照,获取当前摄像头的图像
    img = sensor.snapshot()

    # 循环10次,每次在图像上绘制一个圆形
    for i in range(10):
        # 生成圆形圆心的x坐标,范围在图像宽度的 - 一半到 1.5 倍宽度之间
        x = randint(0, 2 * img.width()) - img.width() // 2
        # 生成圆形圆心的y坐标,范围在图像高度的 - 一半到 1.5 倍高度之间
        y = randint(0, 2 * img.height()) - img.height() // 2
        # 生成圆形的半径,范围在0到图像宽高最大值的一半之间
        radius = randint(0, max(img.height(), img.width()) // 2)

        # 生成圆形颜色的红色分量,范围在128到255之间
        r = randint(0, 127) + 128
        # 生成圆形颜色的绿色分量,范围在128到255之间
        g = randint(0, 127) + 128
        # 生成圆形颜色的蓝色分量,范围在128到255之间
        b = randint(0, 127) + 128

        # 注释说明draw_circle方法的参数传递规则
        # 如果第一个参数是一个标量,那么此方法期望接收x、y和radius作为单独的参数
        # 否则,它期望接收一个包含(x, y, radius)的元组
        # # If the first argument is a scaler then this method expects 
        # to see x, y, and radius. Otherwise, it expects a (x,y,radius) tuple.

        # 在图像上绘制圆形
        # x, y 是圆心的坐标
        # radius 是圆形的半径
        # color=(r, g, b) 指定圆形的颜色
        # thickness=2 指定圆形线条的粗细
        # fill=False 表示不填充圆形内部
        img.draw_circle(x, y, radius, color=(r, g, b), thickness=2, fill=False)

    # 打印当前的帧率,方便了解程序的运行性能
    print(clock.fps())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

DIY机器人工房

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

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

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

打赏作者

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

抵扣说明:

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

余额充值