文章目录

  • 1. 常规使用
  • 2. HSV颜色解释和求值
  • 3. 将某一个RGB颜色转为对应的HSV表示

参考Opencv文档,点击 这里

1. 常规使用

想通过cv2.inRange()筛选颜色区域,一般会使用以下方式来使用

import cv2 as cv
import numpy as np
cap = cv.VideoCapture(0)
while(1):# Take each frame_, frame = cap.read()# Convert BGR to HSVhsv = cv.cvtColor(frame, cv.COLOR_BGR2HSV)# define range of blue color in HSVlower_blue = np.array([110,50,50])upper_blue = np.array([130,255,255])# Threshold the HSV image to get only blue colorsmask = cv.inRange(hsv, lower_blue, upper_blue)# Bitwise-AND mask and original imageres = cv.bitwise_and(frame,frame, mask= mask)cv.imshow('frame',frame)cv.imshow('mask',mask)cv.imshow('res',res)k = cv.waitKey(5) & 0xFFif k == 27:break
cv.destroyAllWindows()

2. HSV颜色解释和求值

HSV颜色表示说明,参考来源在这里,还有这里

表示 含义 物理度量 Opencv度量
H hue,色调 用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。补色是:黄色60°,青色180°,品红300 [0,179]
S Saturation,饱和度 取值范围为0.0~1.0 [0,255]
V Value,亮度 取值范围为0.0(黑色)~1.0(白色) [0,255]
# 蓝色
lower_blue = np.array([110,50,50])
upper_blue = np.array([130,255,255])
# 或者蓝色
low_blue = np.array([94, 80, 2])
high_blue = np.array([126, 255, 255])
# 红色
low_red = np.array([161, 155, 84])
high_red = np.array([179, 255, 255])
# 绿色
low_green = np.array([25, 52, 72])
high_green = np.array([102, 255, 255])
# 除白色之外的颜色
low = np.array([0, 42, 0])
high = np.array([179, 255, 255])

这里每种颜色是使用三个值表示的,其实这三个值对应的分别是HSV的三种值,h, s 以及v。

网上可以搜到常见颜色的HSV范围表格,来源:

或者有一些图,来源

3. 将某一个RGB颜色转为对应的HSV表示

其实很简单,只要把一个RGB的一维array变成三维,再去进行颜色转换即可。

>>> green = np.uint8([[[0,255,0 ]]])
# 注意 这里必须是无符号的unit8;类型
>>> hsv_green = cv.cvtColor(green,cv.COLOR_BGR2HSV)
>>> print( hsv_green )
[[[ 60 255 255]]]

获取该点的HSV颜色信息之后,只需要使用 [H-10, 100,100][H+10, 255, 255] 分别作为颜色的上界和下界,就可以去提取特定颜色了。
或者也有人使用
下界:[h-10, s-40, v-40] ,上界:[h+10, s+40, v+40] 对于yellow,green,red,blue,black,white,orange rgb values.
参考这里

参考文档

  • https://docs.opencv.org/3.4/df/d9d/tutorial_py_colorspaces.html
  • https://opencv24-python-tutorials.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_colorspaces/py_colorspaces.html#converting-colorspaces

Opencv inRang() 和HSV色彩空间表相关推荐

  1. HSV色彩空间表和cv2.inRange()的用法

    HSV色彩空间表和cv2.inRange()的用法 结合cv2.inRange()可以清晰看到某个颜色区域影象位于影象的什么地方. 用法cv2.inRange(img,low,high),函式会将位于 ...

  2. RGB到HSV色彩空间转换表

    RGB到HSV色彩空间转换表

  3. OpenCV之 BGR、GRAY、HSV色彩空间色彩通道专题 【Open_CV系列(三)】

    文章目录 1.色彩空间 1.1 BGR色彩空间 1.2 GRAY色彩空间 1.3 HSV色彩空间 1.4 空间转换 1.4.1 BGR 转 GRAY 1.4.2 BGR 转 HSV 2. 色彩通道 2 ...

  4. opencv学习四:色彩空间转换

    一.常见的色彩空间 RGB颜色空间 RGB(red,green,blue)颜色空间最常用的用途就是显示器系统,彩色阴极射线管,彩色光栅图形的显示器 都使用R.G.B数值来驱动R.G.B 电子枪发射电子 ...

  5. RGB色彩空间和HSV色彩空间的理解

    RGB色彩空间和HSV色彩空间的理解 本文的结构如下: 1.RGB色彩空间 2.HSV色彩空间(附HSV颜色分量范围表) 3.RGB到HSV的转换的Demo   使用OpenCV实现RGB转HSV,并 ...

  6. 树莓派视觉小车 -- OpenCV巡线(HSL色彩空间、PID)

    目录 试错 试错1:形态学处理 试错2:HSV色彩空间 基础理论 1.HSV与HSL色彩空间 2.PID调节 一.OpenCV图像处理 1.在HSL色彩空间下得到二值图 2. 对二值图形态学处理 3. ...

  7. OpenCV扫描图像,查找表和时间测量

    OpenCV扫描图像,查找表和时间测量 OpenCV扫描图像,查找表和时间测量 目标 我们的测试用例 图像矩阵如何存储在内存中? 高效的方法 迭代器(安全)方法 通过参考返回即时计算地址 核心功能 性 ...

  8. [Python图像处理] 使用 HSV 色彩空间检测病毒对象

    使用 HSV 色彩空间检测病毒对象 前言 检测病毒对象 相关链接 前言 在本节中,我们将学习如何使用 OpenCV 在 HSV 色彩空间中使用特定颜色检测感兴趣对象.我们需要通过指定颜色值范围识别和提 ...

  9. 什么是HSV色彩空间

    BGR色彩空间是基于三基色而言,即红色.绿色.蓝色.而HSV色彩空间则是基于色调.饱和度和亮度而言的. 色调(H)是指光的颜色,例如,彩虹中的赤,橙,黄,绿,青,蓝,紫分别表示不同的色调.在OpenC ...

最新文章

  1. matlab图像处理命令(一)
  2. 美团数据平台Kerberos优化实战
  3. python3.5安装pip_python详细安装pip教程
  4. js的hasOwnProperty
  5. Rust: 如何交换Vec类型中数据的位置?
  6. x01.wos: 纸娃娃系统
  7. 运行caffe代码 SegNet
  8. PGP Shredder的使用,加密解密
  9. JavaScript实现富文本编辑器
  10. java 建立tlsv1.2报错_Java 7的javax.net.ssl.SSLHandshakeException
  11. 赵丽颖冯绍峰官宣 | 微博服务器瘫痪!运维:该拿什么拯救我?
  12. 码医自学法V2.2(附名老中医)
  13. 字节跳动Android内部学习资料泄露,高级面试题+解析
  14. 专精特新企业认定条件
  15. VulnHub Billu_b0x
  16. Java引入第三方包
  17. MySQL 数据库管理之 --- 日志查询
  18. flac如何转换成wav?
  19. 【07】2.3 程序语言介绍
  20. jsj中对象之间的赋值

热门文章

  1. Word文档 替换功能
  2. Git版本控制管理——Git和GitHub
  3. android 验证邮箱格式,android开发中, 如何验证邮箱的格式 ?
  4. LayUi数据表格数据太多导致下拉框卡顿问题
  5. 了解MVC模式与MVC框架
  6. xmodem,ymodem,zmodem,kermit的主要区别
  7. MATLAB解方程组
  8. windows聚焦照片_如何拍摄始终聚焦的照片
  9. 瀑布模型的特点及优缺点
  10. 移动端与PC端设计的几项要点