博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【opencv+python】图像处理之一、颜色空间RGB,Gray与HSV
阅读量:4343 次
发布时间:2019-06-07

本文共 930 字,大约阅读时间需要 3 分钟。

该系列文章为 的学习笔记

代码托管在
转载请注明: [三记的博客]


颜色空间转换

  • RGB就是指Red,Green和Blue,一副图像由这三个channel(通道)构成
  • Gray就是只有灰度值一个channel
  • HSV即Hue(色调),Saturation(饱和度)和Value(亮度)三个channel

RGB是为了让机器更好的显示图像,对于人类来说并不直观,HSV更为贴近我们的认知,所以通常我们在针对某种颜色做提取时会转换到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:本文所有代码均在

转载于:https://www.cnblogs.com/ThreeDayMemory/p/5958692.html

你可能感兴趣的文章
win32_c语言绘制曼德博集合(分形绘制)
查看>>
wc之上传图片
查看>>
程序员的核心技能是短期记忆力
查看>>
四.rocketMQ原理
查看>>
【原创】自己动手写的一个查看函数API地址的小工具
查看>>
sd卡的操作
查看>>
mui-当使用addeleventlisener()方法绑定事件时选择器无法绑定事件
查看>>
javascript 中的var : 隐含变量 全局变量 变量提升
查看>>
阿里巴巴Json工具-Fastjson讲解
查看>>
POJ 2376 (区间问题,贪心)
查看>>
SageCRM的学习资料
查看>>
Xtreme8.0 - Kabloom 动态规划
查看>>
Wing IDE 4.1使用笔记一修正一下框框字体显示不了中文
查看>>
【译】x86程序员手册26-7.5任务切换
查看>>
JS中null与undefined的区别
查看>>
有趣的程序
查看>>
牛客练习赛23 F 托米的游戏
查看>>
静态方法与非静态方法区别
查看>>
第四篇 枚举思想
查看>>
KJBitmap与KJHttp的深度用法
查看>>