【OpenMV】迷宫识别 挖坑未更新版

我想用OpenMV做一个迷宫识别的代码,但是奈何实力不允许,不会写,先挖个坑,以后来填坑

二值化 + 识别圆形,画圈
# 颜色二值化滤波例子
#
# 这个脚本展示了二值图像滤波。
# 您可以传递二进制任意的阈值来分割图像。

import sensor, image, time

sensor.reset()
sensor.set_framesize(sensor.QVGA)
sensor.set_pixformat(sensor.RGB565)
sensor.set_windowing(35,35,220,200)

#设置颜色阈值,如果是rgb图像,六个数字分别为(minL, maxL, minA, maxA, minB, maxB);
#如果是灰度图,则只需设置(min, max)两个数字即可。

Black_threshold = (5, 48, 91, -32, 44, -1)  #二值化 黑色颜色阈值

Circle_threshold = (100, 94, 2, -11, 1, -11)    #二值化之后的白色圆形颜色阈值

sensor.skip_frames(time = 2000)
clock = time.clock()


#使用工具 - >机器视觉 - >阈值编辑器选择更好的阈值。
while(True):

    #测试黑色阈值
    clock.tick()
    img = sensor.snapshot() #图像
    img.binary([Black_threshold])   #二值化

    #Circle_Color_Block = img.find_blobs([Circle_threshold]) #寻找圆形色块

    #找圆形
    for c in img.find_circles(threshold = 4000, x_margin = 10, y_margin = 10, r_margin = 10,
            r_min = 3, r_max = 6, r_step = 2):
        img.draw_circle(c.x(), c.y(), c.r(), color = (255, 0, 0))

    #for r in img.find_rects(threshold = 8000):
        #img.draw_rectangle(r.rect(), color = (255, 255, 0))
        ##i = r.x() + (int)(r.w()/2)
        #img.draw_circle(r.x() + (int)(r.w()/2), r.y() + (int)(r.h()/2), 5, color = (0, 255, 255))

    print(clock.fps())

        #image.binary(thresholds, invert=False)此函数将在thresholds内的
        #图像部分的全部像素变为1白,将在阈值外的部分全部像素变为0黑。invert将图像
        #的0 1(黑 白)进行反转,默认为false不反转。

【OpenMV】迷宫识别 挖坑未更新版_第1张图片

【OpenMV】迷宫识别 挖坑未更新版_第2张图片

你可能感兴趣的:(OpenMV,嵌入式硬件,开发语言,笔记)