【OpenMV】常用函数记录

目录

消除画面畸变

画面二值化

画面翻转

设置画面曝光度+视窗大小

LED+延时函数

按键函数(已消抖)

串口(UART)

寻找矩形,画出外框,获取角点


消除画面畸变

img = sensor.snapshot().lens_corr(strength = 1.8, zoom = 1.0)

画面二值化

img = sensor.snapshot().binary([(0,64)])

   (0, 64)中的0代表低于这个阈值的部分将被设置为0(黑色),而64代表高于或等于这个阈值的部分将被设置为255(白色)。在这个例子中,像素的亮度级别范围是0到255(8位灰度值),因此阈值64是中间的一个值。这意味着任何亮度小于64的像素会被设置为黑色,任何亮度等于或大于64的像素会被设置为白色。

画面翻转

sensor.set_vflip(True)  
sensor.set_hmirror(True)

设置画面曝光度+视窗大小

sensor.set_auto_gain(False)  # must be turned off for color tracking
sensor.set_auto_whitebal(False)  # must be turned off for color tracking
sensor.set_auto_exposure(False, exposure_us = 2000) #曝光度调节

sensor.set_windowing((99,38,160,160)) #设置视窗画面大小

LED+延时函数

import pyb
from pyb import LED 

led = pyb.LED(1) # Red LED = 1, Green LED = 2, Blue LED = 3, IR LEDs = 4.
pyb.delay(50)

led.off() # 关闭红色LED(LED1)
led.on()  # 开启红色LED(LED1)

按键函数(已消抖)

import pyb
from pyb import Pin #调用引脚

pin8 = Pin('P8', Pin.IN, Pin.PULL_UP)
pin7 = Pin('P7', Pin.IN, Pin.PULL_UP) #引脚初始化

key1 = pin7.value()
key2 = pin8.value() #获取按键目前状态(按键另一端接地)


while True:
    if key1 == 1:
        pyb.delay(20)
        Key_State_1 = 1
    if key2 == 1:
        pyb.delay(20)
        Key_State_2 = 1

    if key1 == 0 and Key_State_1 == 1: 
        pyb.delay(20)
        Key_State_1 = 0
        #需要执行的函数

    if key2 == 0 and Key_State_2 == 1:
        pyb.delay(20)
        Key_State_2 = 0
        #需要执行的函数

串口(UART)

from machine import UART 

uart = UART(1, 115200)

while True:
    uart.write("(")
    uart.write(str(x1)) #将非字符型变量转变为字符变量 str()
    uart.write(",")
    uart.write(str(y1))
    uart.write(")")
    uart.write('\r\n')

寻找矩形,画出外框,获取角点


import sensor, image, time
 

sensor.reset()
sensor.set_pixformat(sensor.RGB565)    
sensor.set_framesize(sensor.QQQVGA)       
sensor.skip_frames(time=2000)              



while(True):
    clock.tick()
    img = sensor.snapshot().lens_corr(strength = 1.8, zoom = 1.0) #去畸变函数
 
    # 使用find_rects()方法寻找图像中的矩形
    rects = img.find_rects(threshold = 10000)
 
    # 初始化变量来存储最大矩形的信息
    max_area = 0
    max_rect = None
 
    # 遍历所有找到的矩形,找出面积最大的矩形
    for rect in rects:
        # 计算当前矩形的面积
        area = rect.w() * rect.h()
        # 如果当前矩形的面积大于之前记录的最大面积,则更新最大矩形和最大面积
        if area > max_area:
            max_area = area
            max_rect = rect
 
    # 如果找到了最大的矩形,则绘制它的边框
    if max_rect:
        corners = max_rect.corners()    # 获取最大矩形的四个角点

        # 绘制最大矩形的四条边
        for i in range(len(corners)):
            start_point = corners[i]
            end_point = corners[(i+1) % 4]
            img.draw_line(start_point[0], start_point[1], end_point[0], end_point[1], color = 255)
 
        print(corners)   

`openMV biob`函数似乎涉及的是开源微处理器平台OpenMV的相关内容,但它不是标准的OpenMV函数名称。OpenMV通常提供了一系列的功能强大的库,用于处理图像、视频和其他传感器输入。 若`biob`是一个特定功能或者是在某个特定版本的OpenMV库中的函数名,那么它可能是涉及到生物信息学、生物统计或者是某些生物学应用相关的计算,特别是如果你正在讨论的场景涉及到数据处理、分析或者算法,如序列比对、基因表达分析等。 然而,由于`biob`并不是标准的OpenMV库内广泛认知的函数名,并且在官方文档中未能找到直接对应的内容,这可能是开发者自定义的一个函数名或者是某个实验或项目特定的一部分。为了准确理解`biob`的具体作用以及如何使用它,建议查看与之相关的文档或者源代码注释。 如果`biob`确实存在于某个特定的OpenMV项目或者社区贡献中,通常这样的函数可能会有以下特点: 1. **特定任务**:执行特定的生物学数据分析任务,例如基因组数据处理、蛋白质结构预测或其他基于生物学数据的分析。 2. **算法实现**:实现了某种算法或者技术,比如机器学习模型、聚类分析、序列相似性搜索等。 3. **集成特性**:与其他OpenMV的图像处理或传感功能结合,进行跨领域数据融合分析。 4. **用户定制**:允许用户通过修改参数或添加额外功能来自定义其行为,以适应特定的研究需求。 5. **性能优化**:考虑到OpenMV硬件资源有限,该函数可能经过了针对嵌入式系统优化的编码,旨在高效地运行于此类设备上。 如果您需要更详细的帮助,请提供更多具体的上下文信息,包括函数的调用方式、它所处的库版本以及您希望完成的任务目标。这将有助于获得更精确的解答或指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值