电赛准备(一):视觉模块之OpenMV学习(1)--基础知识

详细见这篇:2022年十月份电赛OpenMV巡线方案详细代码分析(1)_openmv巡线代码-CSDN博客

1.初始化配置

导入相关库

import sensor, image, time,math,pyb
from pyb import UART
from pyb import LED
import ustruct   #压缩和不压缩原始数据类型,主要是串口发送那里
from image import SEARCH_EX,SEARCH_DS
import time
import sensor

相关设置

sensor.reset()                      #重置感光元件,重置摄像机
sensor.set_pixformat(sensor.RGB565) #设置颜色格式为RGB565,彩色,每个像素16bit。
#sensor.set_pixformat(sensor.GRAYSCALE) # use grayscale.画面呈现灰色
sensor.set_framesize(sensor.QQVGA)   #图像大小为QQVGA 160*120的分辨率
sensor.skip_frames(time = 2000)     #跳过n张照片,在更改设置后,跳过一些帧,等待感光元件变稳定。
sensor.set_auto_gain(False)         #颜色识别必须关闭自动增益,会影响颜色识别效果
sensor.set_auto_whitebal(False)     #颜色识别必须关闭白平衡,会影响颜色识别效果,导致颜色的阈值发生改变
clock = time.clock()         

3.点灯

LED的作用:

1.所以我设置了一个RGB闪烁的程序。如果OpenMV正常运转,那么RGB就会闪烁。这样出现问题,也方便定位问题。

2.场地照明(有可能会用上)

from pyb import LED     #初始化
red_led = pyb.LED(1)    #下面这三个就是OpenMV上的LED初始化
green_led = pyb.LED(2)
blue_led = pyb.LED(3)
led = LED(1) # 红led
led.toggle()
led.on()#亮
led.off()#灭
#led(4)是什么

4.阈值

thresholds:存放可能要识别物体的LAB阈值。此处分别是黑色,红色,绿色,蓝色的阈值。

(具体要使用阈值编译器来编写)

# 颜色跟踪阈值 (L Min, L Max, A Min, A Max, B Min, B Max)
# 下面的阈值通常跟踪红色/绿色/蓝色的东西。您可能希望调整它们……
thresholds = [(0, 30, -22, 23, -128,80),  #通用的黑色阈值
              (30, 100, 15, 127, 15, 127), # 通用的红色阈值
              (30, 100, -64, -8, -32, 32), # 通用的绿色阈值
              (0, 30, 0, 64, -128, 0)]     # 通用的蓝色阈值
#单独写一条的话
GROUND_THRESHOLD=(0,30,-22,23,-128,80)     

5.绘制相关图形

# 绘制水平线
draw_hori_line(img, x0, x1, y, color)
#绘制竖直线
draw_vec_line(img, x, y0, y1, color)
# 绘制矩形
draw_rect(img, x, y, w, h, color)

6.图像相关操作

sensor.set_vflip(1)                #用于设置垂直翻转(Vertical Flip)功能。
sensor.set_hmirror(1)              # 这条语句通常用于设置水平镜像(Horizontal Mirror)功能
img.binary(turnGRAYSCALE_THRESHOLD)   #图像二值化

7.寻找

img.find_rects(threshold = 10000)#方法检测图像中的矩形。threshold参数用于设置边缘检测的阈值,阈值越高,检测到的矩形越少,但可能更精确。这里的10000是一个相对较高的值,旨在滤除噪声和背景干扰。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值