第五章-OpenMV4 色块识别的图形圆形 正方形识别、 黑色红色识别颜色、坐标识别

项目比赛中需要识别黑色圆形和黄色方形状

要是识别的圆形

openmv代码如下代码带了阈值如何更改阈值

可以使用下面方法

这里是循迹 把循迹线调节成白色就是颜色追踪阈值

把线 调整成

c 复制代码
import sensor, image, time

sensor.reset()  # 重置图像传感器
sensor.set_pixformat(sensor.RGB565)  # 设置像素格式为RGB565
sensor.set_framesize(sensor.QQVGA)  # 设置帧大小为QQVGA
sensor.skip_frames(time = 2000)  # 跳过2000ms的帧以使图像传感器稳定
sensor.set_auto_gain(False)  # 关闭自动增益功能
sensor.set_auto_whitebal(False)  # 关闭自动白平衡功能
clock = time.clock()

while(True):
    clock.tick()  # 记录当前时间
    img = sensor.snapshot().lens_corr(1.8)  # 获取图像并进行畸变校正
    for c in img.find_circles(threshold = 3500, x_margin = 10, y_margin = 10, r_margin = 10,
            r_min = 2, r_max = 100, r_step = 2):
        area = (c.x()-c.r(), c.y()-c.r(), 2*c.r(), 2*c.r())  # 计算圆的外接矩形框区域
        statistics = img.get_statistics(roi=area)  # 统计指定区域内的像素颜色
        print(statistics)  # 打印颜色统计结果
        # (0,100,0,120,0,120) 是红色的阈值,如果区域内的颜色众数在该阈值范围内,则说明是红色的圆
        # l_mode()、a_mode()、b_mode() 分别是L通道、A通道、B通道的众数
        if 0<statistics.l_mode()<100 and 0<statistics.a_mode()<127 and 0<statistics.b_mode()<127:  # 如果识别到的圆是红色的
            img.draw_circle(c.x(), c.y(), c.r(), color = (255, 0, 0))  # 使用红色圆框标记识别到的红色圆形
            print("圆心坐标:({}, {})".format(c.x(), c.y()))  # 输出圆心坐标
        else:
            img.draw_rectangle(area, color = (255, 255, 255))  # 使用白色矩形框标记非红色圆形
    print("FPS %f" % clock.fps())  # 打印帧率
相关推荐
Proxy_ZZ03 分钟前
用Matlab绘制BER曲线对比SPA与Min-Sum性能
人工智能·算法·机器学习
黎阳之光4 分钟前
黎阳之光:以视频孪生领跑全球,赋能数字孪生水利智能监测新征程
大数据·人工智能·算法·安全·数字孪生
宇擎智脑科技15 分钟前
基于 SAM3 + FastAPI 搭建智能图像标注工具实战
人工智能·计算机视觉
F_U_N_22 分钟前
效率提升80%:AI全流程研发真实项目落地复盘
人工智能·ai编程
月诸清酒27 分钟前
24-260409 AI 科技日报 (Gemma 4发布一周下载破千万,开源模型生态加速演进)
人工智能·开源
2501_9333295531 分钟前
技术架构深度解析:Infoseek舆情监测系统的全链路设计与GEO时代的技术实践
开发语言·人工智能·分布式·架构
X journey42 分钟前
机器学习进阶(16):如何防止过拟合
人工智能·机器学习
AI_Claude_code43 分钟前
ZLibrary访问困境方案四:利用Cloudflare Workers等边缘计算实现访问
javascript·人工智能·爬虫·python·网络爬虫·边缘计算·爬山算法
学海星球1 小时前
Claude Code 开发实战:从入门到精通的完整指南
人工智能
一次旅行1 小时前
Hermes Agent接入飞书
人工智能·飞书