MicroMV 颜色识别
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”。