1.1 颜色空间介绍

RGB 颜色空间是大家最熟悉的颜色空间,即三基色空间,任何一种颜色都可以由该三种 颜色混合而成。然而一般对颜色空间的图像进行有效处理都是在 HSV 空间进行的,HSV(色 调 Hue,饱和度 Saturation,亮度 Value)是根据颜色的直观特性创建的一种颜色空间, 也称六角 锥体模型。

参考:https://blog.csdn.net/taily_duan/article/details/51506776

为什么会选择 HSV 空间而不是 RGB 空间? 对于图像而言,识别相应的颜色在 RGB 空间、 HSV 空间或者其它颜色空间都是可行的。之所以选择 HSV,是因为 H 代表的色调基本上可以 确定某种颜色,再结合饱和度和亮度信息判断大于某一个阈值。而 RGB 由三个分量构成, 需要判断每种分量的贡献比例。即 HSV 空间的识别的范围更广,更方便。

图 1-1 HSV颜色空间模型

1.2 三种颜色空间的转换(gray BGR HSV)

在OpenCV中有超过150种的颜色空间转换的方法,但是我们经常会用到的也就只有两种,即 BGR->Gray 和 BGR->HSV。注意 Gray 和 HSV 不可以互相转换。 颜色空间转换:cv2.cvtColor(input_image, flag)

BGR->Gray: flag 就是 cv2.COLOR_BGR2GRAY

BGR->HSV: flag 就是 cv2.COLOR_BGR2HSV

OpenCV 中 HSV 颜色空间的取值范围:

H [0, 179] S [0, 255] V [0, 255]

图 1-2 常用颜色的取值范围

Demo, 程序的源码位于/home/pi/yahboom/colorBlcok/colorBlock.py:

图 1-3 颜色空间转换识别图片中的黄色和红色部分

 

 

在这个程序中,我们第一次接触了掩膜,有些小伙伴可能对掩膜不太了解,掩膜的概念描述不太好理解,它可以被理解为位图,可以进行腐蚀膨胀等形态学的操作。我们只需要知道,在提取感兴趣区域、屏蔽图片某些区域、结构特征提取和特殊图像制作中都可能用到掩膜,即可。

progress:可自行尝试实现多种颜色的识别。

 
 
 

最新文章

  1. 如何隐藏DIV对象
  2. 归并排序-java
  3. 困扰多日的C#调用Haskell问题竟然是Windows的一个坑
  4. 江豚科技|专业移动APP开发与移动互联网解决方案
  5. [BZOJ2683][BZOJ4066]简单题
  6. 什么JSONP
  7. 迷宫 maze
  8. 基本的编程原则SOLID
  9. script 两则
  10. css清除浮动大全,共8种方法
  11. Spring context:component-scan代替context:annotation-config
  12. 大数据平台搭建-zookeeper集群的搭建
  13. <Mastering KVM Virtualization>:第四章 使用libvirt创建你的第一台虚拟机
  14. [LeetCode] Rotated Digits 旋转数字
  15. centos7开启80和8080端口
  16. python3安装pcap遇到的问题
  17. tensorflow学习之(五)构造简单神经网络 并展示拟合过程
  18. python代码在linux服务器一般的开头
  19. Oracle_PL/SQL(4) 过程和函数
  20. Codeforces 1091 Good Bye 2018

热门文章

  1. 第十五节:Asp.Net Core中的各种过滤器(授权、资源、操作、结果、异常)
  2. 如何申请腾讯地图用户Key
  3. Java | Spring Boot Swagger2 集成REST ful API 生成接口文档
  4. Java学习:线程的安全问题
  5. 【转】Apache的架构师们遵循的30条设计原则
  6. 通过Ldap实现人事系统组织人事和AD的同步
  7. vs2019 netocore项目本地程序ip地址访问需修改的配置文件
  8. Netty入门系列(1) --使用Netty搭建服务端和客户端
  9. Beego 学习笔记15:布局页面
  10. js两个不同类型值比较Boolean(0=='')