MicroMV 颜色识别

来自Microduino Wikipedia
Machine1987@qq.com讨论 | 贡献2017年10月25日 (三) 03:45的版本 (创建页面,内容为“== 1、认识Lab 颜色空间空间<br /> == Lab颜色空间是由CIE(国际照明委员会)制定的一种色彩模式。自然界中任何一点色都可以在Lab…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

1、认识Lab 颜色空间空间

Lab颜色空间是由CIE(国际照明委员会)制定的一种色彩模式。自然界中任何一点色都可以在Lab空间中表达出来,它的色彩空间比RGB空间还要大。另外,这种模式是以数字化方式来描述人的视觉感应,与设备无关,所以它弥补了RGB和 CMYK模式必须依赖于设备色彩特性的不足。由于Lab的色彩空间要比RGB模式和CMYK模式的色彩空间大。这就意味着RGB以及CMYK所能描述的色彩信息在Lab空间中都能得以影射。Lab空间取坐标Lab,其中L亮度;a的正数代表红色,负端代表绿色;b的正数代表黄色,负端代表兰色。

2、快速上手

在IDE中写入以下代码

import sensor, image

# 设定目标颜色的LAB阈值 (L Min, L Max, A Min, A Max, B Min, B Max)
threshold = (0, 0, 0, 0, 0, 0)

sensor.reset()# 初始化摄像头
sensor.set_pixformat(sensor.RGB565)# 选择像素模式 RGB565
sensor.set_framesize(sensor.QVGA) #设定帧率
sensor.skip_frames(time=1000) #等待摄像头输出稳定
sensor.set_auto_gain(False) #关闭自动增益
sensor.set_auto_whitebal(False) #关闭白平衡。

while(True):
    img = sensor.snapshot()# 拍照,返回图像
    # 在图像中寻找满足:颜色阈值threshold, 像素阈值pixel_threshold, 面积阈值area_threshold的色块
    blobs = img.find_blobs([threshold], pixels_threshold=100, area_threshold=100)
    if blobs:
    #如果找到了目标颜色
        for blob in blobs :
        #使用矩形框和十字遍历标示出目标颜色
            img.draw_rectangle(blob.rect())
            img.draw_cross(blob.cx(), blob.cy())

将openMV连接到电脑,在线运行程序,并将色彩格式调换为“LAB Color”。