4837浏览
查看: 4837|回复: 4

[项目分享] K210板教程3——识别颜色

[复制链接]
本帖最后由 肥罗-阿勇 于 2023-3-18 12:23 编辑

在上一节识别二维码和条形码的教程里,相信大家都看到了,在识别二维码的代码块上面就是识别颜色
我们来看看识别颜色的代码块有哪些内容





在这里出现了一个 LAB还有一个RGB888
这两个东西分别是什么呢?





RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是运用最广的颜色系统之一。
普遍认为人眼对色彩的分辨能力大致是一千万色,因此由RGB888形成的图像称做真彩色。RGB888真彩色,每一色光以8位元表示,每个通道各有256级阶调,三色光交互增减,RGB三色光能在一个像素上最高显示24位1677万色(256*256*256=16,777,216),这个数值就是电脑所能表示的最高色彩。





Lab模式是根据Commission International Eclairage(CIE)在1931年所制定的一种测定颜色的国际标准建立的。于1976年被改进,并且命名的一种色彩模式。Lab颜色模型弥补了RGB和CMYK两种色彩模式的不足。它是一种设备无关的颜色模型,也是一种基于生理特征的颜色模型。
Lab颜色模型由三个要素组成,一个要素是亮度(L),a 和b是两个颜色通道。a包括的颜色是从深绿色(低亮度值)到灰色(中亮度值)再到亮粉红色(高亮度值);b是从亮蓝色(低亮度值)到灰色(中亮度值)再到黄色(高亮度值)。因此,这种颜色混合后将产生具有明亮效果的色彩。
Lab模式既不依赖光线,也不依赖于颜料,它是CIE组织确定的一个理论上包括了人眼可以看见的所有色彩的色彩模式。





我们打开颜色解析代码块,会发现里面解析的是LAB的L值,A值和B值,那也就是说这里我们主要使用LAB色彩模式。

我们来编写一个程序,设置中心区域为50*50大小的一个正方形区域,识别其中的颜色LAB值,并将LAB值分别显示在屏幕的左上角,同时在右上角把识别到的颜色显示出一个50*50大小的框,比对一下是否是中心区域的颜色。
代码如下:





效果如下:





附件附件










老男人  学徒

发表于 2021-10-31 20:28:54

请教一下,这个mix的程序,是烧录到二哈K210板子上吗?还是应该是烧录到连接的开发板上?类似arduino UNO之类的?
回复

使用道具 举报

老男人  学徒

发表于 2021-11-4 22:46:04

请教一下,这个二哈视觉的板子,我如果用arduino nano328的板子,可以用什么编译工具实现LAB和RGB888的调用呢?因为我们既有的开发板子都是nano328的

楼主的这个似乎是针对Maixduino的板子的。
回复

使用道具 举报

肥罗-阿勇  中级技师
 楼主|

发表于 2022-1-20 20:56:35

老男人 发表于 2021-10-31 20:28
请教一下,这个mix的程序,是烧录到二哈K210板子上吗?还是应该是烧录到连接的开发板上?类似arduino UNO之 ...

这个是直接烧录到Maxiduino主控板上
回复

使用道具 举报

肥罗-阿勇  中级技师
 楼主|

发表于 2022-1-20 20:57:04

老男人 发表于 2021-11-4 22:46
请教一下,这个二哈视觉的板子,我如果用arduino nano328的板子,可以用什么编译工具实现LAB和RGB888的调用 ...

二哈是传感器,暂时无法做主控
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail