颜色识别

颜色识别例程实验效果简介代码讲解完整代码代码结构添加自定义颜色

例程实验效果简介

本节例程代码位于:【源码汇总 / 05.Color / 01.color_recognition.py】

我们用CanMV IDE打开例程代码,将K230用USB连接到电脑上

打开例程代码,找到THRESHOLDS数组,在数组中找到你想追踪/识别的颜色的下标

添加方法我们可以看 添加自定义颜色 部分

点击CanMV IDE左下角的运行按钮,

将K230的屏幕里会框出来摄像头捕获到的图像中可识别的颜色(例程默认检测红色)

CanMV集成了基于LAB颜色模型的RGB565颜色块识别find_blobs函数

image-20250211103903681

运行效果如图

image-20250401212520156

 

代码讲解

本节我们要用的的外设主要是摄像头模块

线段检测由 K230中的 find_blobs() 方法实现,该方法属于image模块

完整代码

 

代码结构

程序设置:

主要功能:

工作流程:

异常处理:

 

添加自定义颜色

CanMV IDE为我们提供了一个比较方便的LAB色域选择工具

我们点击CanMV IDE左上角的【工具】->【机器视觉】->【阈值编辑器】

打开一张【存在】我们想要识别的颜色的图片(干扰颜色尽可能多)

image-20250114142128532

以亚博智能的Logo的颜色为例

原始图像:

find_logo_color

用阈值编辑器打开:

image-20250114143201400

拖动下方滑块,调整到右边的二进制图像中,只有我们需要的颜色的部分是白色,其余地方是黑色

image-20250114143425492

此时红圈中的LAB阈值就是我们需要的

我们将这个阈值复制后添加到代码中的THRESHOLDS数组中

修改color_index为我们刚刚添加的这个颜色在数组中的下标

这样我们的程序就可以开始检测并追踪我们新增的这个颜色了

颜色检测效果不佳?

  1. 尽量在打开阈值编辑器的时候,用帧缓冲区,或者使用K230拍照后的图像文件。这样能大大提升识别的准确度

    image-20250114144310766

  2. 可以放宽一点识别的阈值