2725|31

3386

帖子

0

TA的资源

五彩晶圆(中级)

MicroPython动手做(08)——零基础学MaixPy之识别颜色 [复制链接]

 

早上用百度搜了一下“颜色识别”,多少有了一点大致的概念,还是老办法,动手做,多实验,往前走,还请各位老师多多指点。

 

OpenCV(百度百科)
是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。该库也有大量的Python、Java and MATLAB/OCTAVE(版本2.5)的接口。这些语言的API接口函数可以通过在线文档获得。如今也提供对于C#、Ch、Ruby,GO的支持。

 

OpenCV于1999年由Intel建立,如今由Willow Garage提供支持。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV 拥有包括 500 多个C函数的跨平台的中、高层 API。它不依赖于其它的外部库——尽管也可以使用某些外部库。OpenCV 为Intel® Integrated Performance Primitives(IPP)提供了透明接口。这意味着如果有为特定处理器优化的 IPP 库,OpenCV 将在运行时自动加载这些库。 (注:OpenCV 2.0版的代码已显著优化,无需IPP来提升性能,故2.0版不再提供IPP接口)

 

19.jpg


此内容由EEWORLD论坛网友eagler8原创,如需转载或用于商业用途需征得作者同意并注明出处

最新回复

支持一个,没想到能玩出这种效果  详情 回复 发表于 2020-4-8 08:02

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

20.jpg

OpenCV概述
其全称是Open source Computer Vision Library,开放源代码计算机视觉库。也就是说,它是一套关于计算机视觉的开放源代码的API函数库。这也就意味着:
(1)不管是科学研究,还是商业应用,都可以利用它来作开发;
(2)所有API函数的源代码都是公开的,你可以看到其内部实现的程序步骤;
(3)你可以修改OpenCV的源代码,编译生成你需要的特定API函数。但是,作为一个库,它所提供的,仅仅是一些常用的,经典的,大众化的算法的API。

一个典型的计算机视觉算法,应该包含以下一些步骤:
(1)数据获取(对OpenCV来说,就是图片);
(2)预处理;
(3)特征提取;
(4)特征选择;
(5)分类器设计与训练;
(6)分类判别;
而OpenCV对这六个部分,分别(记住这个词)提供了API。


回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

21.jpg

 

 

基于OpenCV的颜色识别

彩色模型
数字图像处理中常用的采用模型是RGB(红,绿,蓝)模型和HSV(色调,饱和度,亮度),RGB广泛应用于彩色监视器和彩色视频摄像机,我们平时的图片一般都是RGB模型。而HSV模型更符合人描述和解释颜色的方式,HSV的彩色描述对人来说是自然且非常直观的。

 

HSV模型
HSV模型中颜色的参数分别是:色调(H:hue),饱和度(S:saturation),亮度(V:value)。由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。

色调(H:hue):用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,品红为300°;
饱和度(S:saturation):取值范围为0.0~1.0,值越大,颜色越饱和。
亮度(V:value):取值范围为0(黑色)~255(白色)。

 

RGB转成HSV
设 (r, g, b) 分别是一个颜色的红、绿和蓝坐标,它们的值是在 0 到 1 之间的实数。设 max 等价于 r, g 和 b 中的最大者。设 min 等于这些值中的最小者。要找到在 HSV 空间中的 (h, s, v) 值,这里的 h ∈ [0, 360)是角度的色相角,而 s, v ∈ [0,1] 是饱和度和亮度。 OpenCV下有个函数可以直接将RGB模型转换为HSV模型,OpenCV中H∈ [0, 180), S ∈ [0, 255], V ∈ [0, 255]。我们知道H分量基本能表示一个物体的颜色,但是S和V的取值也要在一定范围内,因为S代表的是H所表示的那个颜色和白色的混合程度,也就说S越小,颜色越发白,也就是越浅;V代表的是H所表示的那个颜色和黑色的混合程度,也就说V越小,颜色越发黑。大致识别蓝色的取值是 H在100到140,S和V都在90到255之间。


回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

OpenCV颜色识别思路
1、创建滑动条:用来调节阈值,识别出不同颜色。

2、颜色空间转换:将RGB转换为HSV模型,于是可以通过不同颜色的HSV的阈值不同来识别出该种颜色。Opencv中使用cvtcolor()可实现。一般彩色图像都是RGB颜色空间,而HSV色彩空间模型是一种在人们生活中甚至更常用的颜色系统,在电视遥控器上、在画画的调色板中、在看电视时调整亮度时都很常见,因为它更符合人们描述颜色的方式——是什么颜色、颜色有多深、颜色有多亮。需要注意的是,在opencv中,H、S、V值范围分别是[0,180),[0,255),[0,255),而非实际模型[0,360],[0,1],[0,1]。

3、直方图均衡化:由于光线的影响,手机读取的每一帧图片可能存在太亮或者太暗的问题,直方图均衡化可以将每个区间的像素点分布更均衡,使图像的层次感更强。Opencv中可以用equalizeHist()函数实现。直方图均衡化就是将原始的直方图拉伸,使之均匀分布在全部灰度范围内,从而增强图像的对比度。直方图均衡化的中心思想是把原始图像的的灰度直方图从比较集中的某个区域变成在全部灰度范围内的均匀分布

4、二值化:将图像上的像素点的灰度值设置为0或255,这样将使整个图像呈现出明显的黑白效果。对灰度图像进行二值化处理,可以突出一定范围的信息。它是将像素点颜色值在所设定区间内(如a-b)的设定为255,在范围外的设为0.但是对于ab和的不同取值,二值化的效果会有很大的不同。

5、开操作:用来去除图像中的噪点,即干扰信息。Opencv中可以使用getStructuringElement()函数来进行相应设置。开操作是基于图像的膨胀和腐蚀而言的,膨胀就是对图像高亮部分进行“领域扩张”,效果图拥有比原图更大的高亮区域;腐蚀是原图中的高亮区域被蚕食,效果图拥有比原图更小的高亮区域。而开操作是对图像先腐蚀再膨胀,用来消除小物体。其数学原理是定义一个卷积核B,将其与目标图像进行卷积,就可以达到相应效果。不同形状和大小的核会出现不同的效果。

6、闭操作 :进行开操作之后可能会有一些断开的区域,闭操作可以将这些未联通的区域进行封闭,使图像更完整。闭操作是开操作的相反,先膨胀再腐蚀,用于排除小型黑洞,其原理与开操作相同。


回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

手头正好有个魔方,有五种颜色,就拿它当识别颜色的实验道具了。

 

27.jpg

 

 


回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

打开MaixPy IDE,选择工具——机器视觉——阕值编辑器

 

28.jpg


回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

打开源图像位置,选择帧缓冲区

 

29.jpg


回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

调整LAB阕值,主要是在二进制图像栏,白色像素是被跟踪的像素

 

30 (1).jpg


回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

如果您需要查看本帖隐藏内容,请登录或者注册

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

如果您需要查看本帖隐藏内容,请登录或者注册

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

如果您需要查看本帖隐藏内容,请登录或者注册

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

如果您需要查看本帖隐藏内容,请登录或者注册

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

如果您需要查看本帖隐藏内容,请登录或者注册

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

如果您需要查看本帖隐藏内容,请登录或者注册

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

如果您需要查看本帖隐藏内容,请登录或者注册

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

如果您需要查看本帖隐藏内容,请登录或者注册

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

如果您需要查看本帖隐藏内容,请登录或者注册

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

如果您需要查看本帖隐藏内容,请登录或者注册

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

如果您需要查看本帖隐藏内容,请登录或者注册

回复

3386

帖子

0

TA的资源

五彩晶圆(中级)

如果您需要查看本帖隐藏内容,请登录或者注册

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

相关帖子
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表