openmv 自适应取阈值 物块

前言因为调试的时候,经常因为环境光问题识别不了物块,很是头疼。就想说有没有什么自动调节阈值的办法。 查找资料,看到大佬们有很多自适应阈值的算法, 也是借鉴大佬的资料 ,做出个简易取阈值

此方法可以通过按键开关可以自动调整阈值范围,并将阈值显示到LCD中
所需材料 : openmv ,lcd , 按键 ,锂电池 ,杜邦线
实物图在这里插入图片描述

操作过程: 通过特定的ROI区对准需要取值的物块,并通过按动按键,对P0口施加低电平 开启取阈值,并实时显示在LCD中。
在这里插入图片描述
效果图
在这里插入图片描述
优点: 对于现场不同的环境光 可以实时的改变相应的阈值 。并且不需要电脑手动调节阈值,操作简单,方便, 实时的显示阈值
缺点: 阈值的范围 有局限性

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
OpenMV中,可以使用按键来调整阈值。有几种方法可以实现这个功能。 第一种方法是通过将P1口设为输入模式,并定义为pin1。然后在一个while循环中,使用pin1.value()方法获P1口的电平值。当按键按下时,电平值会变化,进入if循环并执行相应的语句。这种方法简单易用,支持连按,按下按键后可以一直触发,直到松开。适合在数据校准时通过按键调整阈值。如果触发速度过快,可以在判断中增加延时函数来减慢触发速度。以下是示例代码: ```python import sensor, image, time from pyb import Pin sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.skip_frames(time = 2000) clock = time.clock() pin1 = Pin('P1', Pin.IN, Pin.PULL_UP) while True: clock.tick() img = sensor.snapshot() key0 = pin1.value() if key0 == 0: print("key0 pressed!") ``` 第二种方法是通过定时器触发。这种方法融合了前两种方法的优点和不足,支持单次触发和连按。可以通过更改定时器的频率来调整触发频率。以下是示例代码: ```python import sensor, image, time from pyb import Pin, Timer sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.skip_frames(time = 2000) clock = time.clock() pin1 = Pin('P1', Pin.IN, Pin.PULL_UP) def tick(timer): key0 = pin1.value() if key0 == 0: print("111") if key0 == 1: print("222") tim = Timer(2, freq=1) # 创建一个定时器对象,频率为1Hz tim.callback(tick) # 将回调函数设置为tick函数 while True: clock.tick() img = sensor.snapshot() ``` 这些方法可以根据实际需求选择使用,以便通过按键来调整阈值

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值