【openMV】openMV之色块识别(黑线识别)

import sensor, image, time
thresholds = [(0, 50, -24,-1, -18, 6)]#LAB阈值
#顺序:(L Min, L Max, A Min, A Max, B Min, B Max)
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time = 2000)
sensor.set_auto_gain(False) # 关闭增益(色块识别时必须要关)
sensor.set_auto_whitebal(False) # 关闭白平衡
clock = time.clock()#定义时钟对象clock



while(True):
    clock.tick()#返回以毫秒计的通电后的运行时间。
    img = sensor.snapshot()#抓取一帧的图像并返回一个image对象
    #img.find_blobs()查找图像中所有色块,并返回包含每个色块的色块对象列表
    for blob in img.find_blobs(thresholds, pixels_threshold=50, area_threshold=50, merge=False):
    #若一个色块的边界框区域小于 area_threshold ,则会被过滤掉。
    #若一个色块的像素数小于 pixel_threshold ,则会被过滤掉。   
    #merge_cb 可设置为用以调用两个即将合并的色块的函数,以禁止或准许合并。

    #if blob.elongation() > 0.5:#返回一个介于0和1之间的值,该值表示对象的长度(不是圆形)。一条线将是1。
    #img.draw_edges(blob.min_corners(), color=(255,0,0))
    #img.draw_line(blob.major_axis_line(), color=(0,255,0))
    #img.draw_line(blob.minor_axis_line(), color=(0,0,255))
        
    img.draw_rectangle(blob.rect())#画矩形框 blob.rect() ---> 返回一个矩形元组(可当作roi区域)
    img.draw_cross(blob.cx(), blob.cy())#画十字 blob.cx(), blob.cy() --->返回中心点x和y坐标     
     
        
    print(clock.fps())#clock.fps() ---> 停止追踪运行时间,并返回当前FPS(必须先调用tick)。

【openMV】openMV之色块识别(黑线识别)_第1张图片

进一步定位黑线文章,戳这里

 

你可能感兴趣的:(#,openMV,openMV4)