【opencv+python】图像处理之一、颜色空间RGB,Gray与HSV
来源:互联网 发布:android sdk windows 编辑:程序博客网 时间:2024/05/16 03:26
该系列文章为 OpenCV+Python Tutorials的学习笔记
代码托管在Github
转载请注明: http://blog.csdn.net/a352611/article/details/51416769 [三记的博客]
颜色空间转换
cv2.cvtColor
- RGB就是指Red,Green和Blue,一副图像由这三个channel(通道)构成
- Gray就是只有灰度值一个channel
- HSV即Hue(色调),Saturation(饱和度)和Value(亮度)三个channel
RGB是为了让机器更好的显示图像,对于人类来说并不直观,HSV更为贴近我们的认知,所以通常我们在针对某种颜色做提取时会转换到HSV颜色空间里面来处理.
需要注意的是H的取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°,想提取红色时需注意取值应为-10~10(打比方)OpenCV中H的取值范围为0~180(8bit存储时),
例子
提取蓝色物体
HSV = cv2.cvtColor(Img, cv2.COLOR_BGR2HSV)H, S, V = cv2.split(HSV)LowerBlue = np.array([100, 100, 50])UpperBlue = np.array([130, 255, 255])mask = cv2.inRange(HSV, LowerBlue, UpperBlue)BlueThings = cv2.bitwise_and(Img, Img, mask=mask)
PS:
RGB在OpenCV中存储为BGR的顺序,数据结构为一个3D的numpy.array,索引的顺序是行,列,通道:
BGRImg = cv2.imread(ImgPath)B = BGRImg[:, :, 0]G = BGRImg[:, :, 1]R = BGRImg[:, :, 2]
也可以使用:
BGRImg = cv2.imread(ImgPath)B, G, R = cv2.split(BGRImg)
注意,cv2.split的速度比直接索引要慢,但cv2.split返回的是拷贝,直接索引返回的是引用(改变B就会改变BGRImg)
TIPS:本文所有代码均在/Src/ImageProcessing/ColorSpace/ColorSpaces.py
0 0
- 【opencv+python】图像处理之一、颜色空间RGB,Gray与HSV
- 【OpenCV】颜色空间(RGB,HSV与Gray)及图像处理中的颜色识别
- opencv,图像处理,rgb转换为hsv空间
- RGB与HSV颜色空间
- ios--OpenCV--RGB与HSV颜色空间的转换
- OpenCV之RGB与HSV颜色空间的转换
- 【OpenCV】颜色空间RGB与HSV(HSL)的转换
- 【OpenCV】颜色空间RGB与HSV(HSL)的转换
- RGB-HSV颜色空间
- HSV与RGB颜色空间的转换
- HSV颜色空间 与 RGB 颜色空间的相互转换
- Delphi图像处理 -- RGB与HSV转换
- RGB颜色空间和HSV颜色空间以及RGB与Hsv间的相互转换
- LIRe图像检索:RGB和HSV空间的颜色直方图
- Opencv的RGB到HSV颜色空间转换
- Opencv的RGB到HSV颜色空间转换
- RGB和HSV颜色空间
- RGB和HSV颜色空间
- 雷神Quake3引擎
- 混合积的几何意义_20160512
- Android FragmentManage FragmentTransaction介绍
- 深入理解容器系列之二--------ArrayList的总结
- Nginx配置负载均衡
- 【opencv+python】图像处理之一、颜色空间RGB,Gray与HSV
- iPhone/iOS图片相关(读取、保存、绘制、其它相关)
- ObjectInputStream和ObjectOutputStream的用法(Map数据读取和写入)
- Mac安装maven
- android开发笔记之 Android 国际化
- java基础:反射
- 两次拉格朗日中值证明曲线凹凸性定理_2016514
- 剑指offer 面试题39:判断平衡二叉树(LeetCode 110. Balanced Binary Tree) 题解
- coocs2dx 2.0 和3.0版本区别