【视觉】openmv常用操作

openmv代码整合 ——常用操作

[^By LCB]: by LCB

零、Import

import sensor, image, time
from pyb import UART
import ustruct
import json
from image import SEARCH_EX, SEARCH_DS

一、相机初始化

def sensorInit():
    sensor.reset()
    sensor.set_pixformat(sensor.RGB565)
    sensor.set_auto_gain(False)
    sensor.set_framesize(sensor.QVGA)
    sensor.set_auto_exposure(False)#(True, 500)#在这里调节曝光度,调节完可以比较清晰地看清激光点
    sensor.set_auto_whitebal(False) # turn this off.
    sensor.set_auto_gain(False) # 关闭增益(色块识别时必须要关)

Blob的性质与操作

Blob查找

返回值:包括每个色块的色块对象的列表,blob是一个对象

roil_board = (19,24,207,193)
THRESHOLD_RED_CIRCLE_IN_WHITE_GREEN_BLACK_AUTO = (22, 100, 12, 127, -3, 127)
blobPoints=img.find_blobs([THRESHOLD_RED_CIRCLE_IN_WHITE_GREEN_BLACK_AUTO], roi=roil_board,merge =True)

找到最大的Blob

#找到最大的色块
def find_max(blobs):
    max_size=0
    for blob in blobs:
        if (blob[2]*blob[3] > max_size):
            max_blob=blob
            max_size = blob[2]*blob[3]
    return max_blob

max_blob=find_max(blobPoint)

Openmv 硬件

串口通信

from pyb import UART

uart3 = UART(3,115200,bits=8, parity=None, stop=1, timeout_char = 1000)
uart1=UART(1,115200)
uart1.init(115200, bits=8, parity=None, stop=1)  #8位数据位,无校验位,1位停止


def Sending_Mission_1_data(data1,data2,data3,data4):
    global uart3;
    data = ustruct.pack("<bbbbb",
                   0xAA,data1,data2,data3,data4
                   )
    uart3.write(data);   #必须要传入一个字节数组
GPIO读取
# 先介绍一下里面的 pyb 包
# 这个包存放的都是一些外设的模块,如 IO口,,UART,Timer,PWM,ADC,DAC,IIC,SPI,CAN,中断

# 先介绍IO口的控制
# 可以直接导入这个包,仅仅是调用这个包,使用里面的模块时,必须带上包名

import pyb

# 我们调用的都是这包里面的模块,使用方法:使用前必须带上包的名字 pyb
P7_Out = pyb.Pin('P7', Pin.OUT_PP)  # P7设置成推挽输出
P7_Out = pyb.Pin('P7', Pin.OUT_OD)  # P7设置成开漏输出
P7_In = pyb.Pin('P7', Pin.IN, Pin.PULL_UP)  # P7,上拉入
P7_In = pyb.Pin('P7', Pin.IN, Pin.PULL_DOWN)  # P7,下拉输入
P7_In = pyb.Pin('P7', Pin.IN, Pin.PULL_NONE)  # P7,浮空输入

# 控制引脚的状态
P7_Out.high()  # 输出高电平
P7_Out.low()  # 输出低电平

# 获取引脚的状态
P7_State = P7_In.value()  # 获取P7的引脚状态,0 or 1
外部中断

4. GPIO引脚 — MicroPython 1.9.2 文档 (singtown.com)

图形绘制

#绘制直线
img.draw_line(corner_points[0][0], corner_points[0][1], corner_points[1][0], corner_points[1][1], color=(255,0,255), thickness=1)
#绘制矩形
img.draw_rectangle((SquareXarray ,SquareYarray ,SquareWidth,SquareHeight),color=(0,0,255))
#绘制十字
img.draw_cross(max_blob.cx(), max_blob.cy(),color=(0, 0, 255))
#绘制文字
img.draw_string(maxcenter_blob.cx(), maxcenter_blob.cy(), "center", color=(0, 0, 255))

附录一 openmv 参考文档

image — 机器视觉 — MicroPython 1.9.2 文档 (singtown.com)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

绿茶冰

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

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

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

打赏作者

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

抵扣说明:

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

余额充值