Openmv相关知识学习(一)

一、引入库函数

格式:import +函数库名称,或者from +函数库+import+特定函数,后者可以精确地从模块中选择性地导入需要的对象,而不是导入整个模块。

from machine import Pin
import sensor, image, time

需要强调一下基础的函数库

sensor感光元件模块
image图像处理相关模块
time时钟

二、初始化

#摄像头初始化
sensor.reset()                      #  初始化感光元件
sensor.set_pixformat(sensor.RGB565) # 设置像素模式(这里是彩色)
sensor.set_framesize(sensor.QQVGA)   #  设置图像大小 (320x240)
#sensor.set_windowing((160, 160))    #设置窗口
sensor.set_auto_gain(False)
#自动增益开启(True)或者关闭(False)。在使用颜色追踪时,需要关闭自动增益。
sensor.set_auto_whitebal(False)
#自动白平衡开启(True)或者关闭(False)。在使用颜色追踪时,需要关闭自动白平衡。
sensor.set_auto_exposure(False)
#enable 打开(True)或关闭(False)自动曝光。默认打开。
#如果 enable 为False, 则可以用 exposure_us 设置一个固定的曝光时间(以微秒为单位)。
sensor.skip_frames(time = 3000)     # Wait for settings take effect.
#水平方向翻转
sensor.set_hmirror(True)
#垂直方向翻转
sensor.set_vflip(True)

上面是关于感光元件的初始化

详情可参考感光元件 · OpenMV中文入门教程

三、进行相关的操作

1、测距
import sensor, image, time
yellow_threshold = (56, 83, 5, 57, 63, 80)
sensor.reset()  # 初始化相机传感器。
sensor.set_pixformat(sensor.RGB565)  # 使用RGB565色彩格式。
sensor.set_framesize(sensor.QQVGA)  # 使用QQVGA分辨率以提高速度。
sensor.skip_frames(10)  # 跳过一些帧以使新的设置生效。
sensor.set_auto_whitebal(False)  # 关闭自动白平衡。
clock = time.clock()  # 用于跟踪帧率。

K = 5000  # 用于测量的常量值,具体值需要根据实际测量确定。

while True:
    clock.tick()  # 记录快照之间经过的毫秒数。
    img = sensor.snapshot()  # 拍摄一张照片并返回图像对象。

    blobs = img.find_blobs([yellow_threshold])  # 查找符合黄色阈值的物体区域。
    if len(blobs) == 1:
        # 绘制一个矩形框出找到的物体。
        b = blobs[0]
        img.draw_rectangle(b[0:4])  # 在物体周围绘制矩形框
        img.draw_cross(b[5], b[6])  # 在物体中心位置绘制交叉标记
        Lm = (b[2] + b[3]) / 2  # 计算物体宽度和高度的平均值
        length = K / Lm  # 使用预定义的常量K计算距离
        print(length)  # 打印计算得到的距离值

其中k值测量方法:就是先让球距离摄像头10cm(可变),打印出摄像头里直径的像素值,然后相乘,就得到了k的值!

这里的b表示一个色块的属性。

  • blob[0]相当于blob.x() 返回色块的外框的x坐标(int)。
  • blob[1]相当于blob.y() 返回色块的外框的y坐标(int)。
  • blob[2]相当于blob.w() 返回色块的外框的宽度w(int)。
  • blob[3]相当于blob.h() 返回色块的外框的高度h(int)。
  • blob[5]相当于blob.cx() 返回色块的外框的中心x坐标(int)。
  • blob[6]相当于blob.cy() 返回色块的外框的中心y坐标(int)。

参考测距 · OpenMV中文入门教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值