关注“深度学习冲鸭”,一起学习一起冲鸭!

设为星标,第一时间获取更多干货

作者:云时之间

来源:知乎

链接:https://zhuanlan.zhihu.com/p/103387082

编辑:王萌

在这一篇文章中,我们将会学习使用一下OpenCV中色彩空间的转换函数,我们这里说的色彩空间是说的使用多种颜色(通常指三种以上),来表示颜色的方法,像是我们平时所说的RGB,HSV,YUV,YCRCB,都是色彩空间模型。OpenCV也很方便的封装了很多的色彩空间函数。下面我们一起来实践一下(以下所有试验都根据下图完成,我截取的Windows自带的壁纸^_^)

一:RGB

RGB我们很熟悉,一幅图像是由三个独立的红,蓝,绿通道构成,每个值代表每个像素的每个分量的度量值,如果值越高也就越亮。

因为人眼也是由三种感光细胞构成,因此RGB我们是最熟悉的,比如在电竞的时候,使用RGB灯可以刺激人的感官,提升成绩。

上图也就是RGB的实现方式。

二:灰度

灰度图像我们的应用也是非常广泛,包括我们后续的如果做视频追踪也都是将彩色视频逐帧转换为灰度图像再去定位,不过这是后话。

彩色转换为灰度图像的计算方法如下:

每个像素值只表示灰度信息这一单一信息

RGB[A]准换成灰度:Y=0.299*R+0.587*G+0.114*B

灰度转换为RGB[A]:R=Y,G=Y,B=Y,A=max(ChannelRange)

在OpenCV中我们可以使用cvtColor函数来实现转换

结果如下:

三:HSV

HSV颜色空间输入面向色度的颜色坐标系统的一种。这种类型的颜色模型接近人类颜色感知的仿真模型。

HSV的三个通道表示色度(H给出的颜色光谱构成的一种度量),饱和度(S给出主波长中的纯光比例,这表明一种颜色距离相同亮度灰度的程度)和纯度(V给出相对于白色光照强度的亮度),对应于直觉上的色彩、明暗和色调。HSV广泛应用于色彩的比较.

关于HSV的计算可以参考以下的公式:

这里我们用OpenCV实现:

得到的结果如下:

这样来看,似乎什么信息都没有,这里要注意一点,因为在代码中显示函数使用的是imshow(),这个函数是以RGB来显示的,因此我们使用HSV肯定是不正确的,如果想显示正确,必须要将其转换成RGB空间,这个具体以后再详细说一下。

四:YCRCB

该空间广泛用于视频和图像压缩,不能算作纯粹的色彩空间,它是RGB颜色空间的一种解码方式Y通道表示亮度,而Cr和Cb表示红色差值(在RGB空间中R通道和Y的差值)和蓝色差值(在RGB空间中B通道和Y的差值)各自的色度分量。

其变化的计算如下:

在OpenCV中,我们使用:

得到的结果如下:

总体来看,还是可以看得出相对于其他的色彩模型,还是能够保留一定的色彩,但是因为压缩的缘故,色彩空间还是差很多。

完整的代码如下,希望大家可以多多动手,亲身尝试一下。

import cv2 as cv
import numpy as np
#色彩空间转换函数:RGB,HSV,YUV重要
def color_space_demo(image):gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)cv.imshow("gray",gray)hsv = cv.cvtColor(image,cv.COLOR_BGR2HSV)cv.imshow("HSV",hsv)yuv = cv.cvtColor(image,cv.COLOR_BGR2YUV)cv.imshow("YUV",yuv)Ycrcb = cv.cvtColor(image,cv.COLOR_BGR2YCrCb)cv.imshow("YCRCB",Ycrcb)#imread函数用来读取图片
src = cv.imread("D:/1.png")
#namedWindow函数用来指定输出图片的尺寸和窗口大小,autosize是自动大小
cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
#imshow函数用来显示图像
cv.imshow("input image",src)
color_space_demo(src)
#等待键盘触发,否则一直在此窗口等待
cv.waitKey(0)
#结束所有的窗口
cv.destroyAllWindows()

而下一篇文章,我们将会通过一段视频,来通过HSV来过滤出特定的颜色空间,这也是很有意义的一项工作。并且在实际生活中很有用,如果大家遇见什么问题,也请多多和我交流。

每天进步一丢丢

设计自组织映射神经网络并设定网络训练参数——初始化权值 & 设计拓扑领域

初始化权值:可以随机初始化,但尽量使权值的初始位置与输入样本的大概分布区域充分重合,避免出现大量的初始“死节点”。一种简单易行的方法是从训练集中随机抽取m个输入样本作为初始权值。

设计拓扑领域:拓扑领域的设计原则是使领域不断缩小,这样输出平面上相邻神经元对应的权向量之间既有区别又有相当的相似性,从而保证当获胜节点对某一类模式产生最大响应时,其领域节点也能产生较大响应。领域的形状可以是正方形、六边形或者菱形。优势领域的大小用领域的半径表示,通常凭借经验来选择。

预告:设计自组织映射神经网络并设定网络训练参数——设计学习率

推荐阅读:

豆瓣9.4!《深度学习入门》笔记总结,带你从感知机入门深度学习!(连载)

豆瓣9.4!《深度学习入门:基于Python的理论与实现》学习笔记(2)

手磕实现 CNN卷积神经网络!-  《深度学习入门:基于Python的理论与实现》系列之三

长文超详讲解深度学习中你总是掌握不牢的若干知识点 - 《深度学习入门》系列之四

CV学习笔记:入坑必备

CV学习笔记(二):OpenCV基本操作

今天因为你的点赞,让我元气满满

【CV学习笔记】色彩空间相关推荐

  1. y空间兑换代码_【CV学习笔记】色彩空间

    关注"深度学习冲鸭",一起学习一起冲鸭! 设为星标,第一时间获取更多干货 作者:云时之间来源:知乎链接:https://zhuanlan.zhihu.com/p/103387082 ...

  2. CV学习笔记-BP神经网络训练实例(含详细计算过程与公式推导)

    BP神经网络训练实例 1. BP神经网络 关于BP神经网络在我的上一篇博客<CV学习笔记-推理和训练>中已有介绍,在此不做赘述.本篇中涉及的一些关于BP神经网络的概念与基础知识均在< ...

  3. cv学习笔记(3)神经网络数学原理

    cv学习笔记(3)神经网络数学原理 根据一个神经网络例子来介绍 输入是年龄.收入.性别,输出是买车和不买车的概率.该神经网络包含一个输入层.一个隐含层.一个输出层,每个节点和下一层的所有节点都有连接, ...

  4. CV学习笔记-浅述CV方向

    浅述CV方向 一.浅述人工智能的一些术语 1. 人工智能初探 人工智能是通过机器来模拟人类认知能力的技术 人工智能最核心的能力就是根据给定的输入做出判断或预测 关键时间节点:1956年,达特茅斯会议, ...

  5. 【CV学习笔记】图像预处理warpaffine-cuda加速

    1.前言 在上个学习笔记中学习warpaffine,并且在opencv下面实现了图像的预处理,而warpaffine可以很好的利用cuda加速来实现,于是基于手写AI的项目,又学习了warpaffie ...

  6. 肝货满满!CV学习笔记:入坑必备

    知乎:云时之间 链接:https://zhuanlan.zhihu.com/p/102044405 编辑:王萌 作者的话 最近因为一些原因被安排去做关于目标跟踪的一些工作,对我来说可谓是一个很大的挑战 ...

  7. CV学习笔记-Alexnet

    Alexnet 1. 背景 AlexNet是2012年ImageNet竞赛冠军获得者Hinton和他的学生Alex Krizhevsky设计的.也是在那年之后,更多的更深的神经网络被提出. 2. 网络 ...

  8. CV学习笔记-推理和训练

    推理和训练 1. 概述 训练(Training): 一个初始神经网络通过不断的优化自身参数,来让自己变得准确.这整个过程就称之为训练(Training) 推理(Inference): 你训练好了一个模 ...

  9. CV学习笔记-图像滤波器

    图像滤波器 1. 图像滤波 1. 图像滤波&滤波器 图像滤波: 即在尽可能保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可不可缺少的操作,其处理效果的好坏将直接影响到后续图 ...

  10. CV学习笔记-边缘提取

    边缘提取 1.概述 1.边缘 定义: 图像的边缘是指图像局部区域亮度变化显著的部分,该区域的灰度剖面一般可以看作是一个阶跃,即从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值. 特点 ...

最新文章

  1. Vivado中MIG核中DDR的读写控制
  2. java如何获得点的横纵坐标_横纵坐标怎么区分
  3. troubleshoot之:GC调优到底是什么
  4. SEO技巧:好的域名是网站成功的开始
  5. native react 常用指令_React Native 常用的 15 个库
  6. 蓝桥学院2019算法题2.17
  7. 小程序组件的使用(三) 调用子组件方法
  8. 计算机c语言笔试试题,计算机二级c语言笔试题和面试题答案(2019最新)
  9. 综述!信息检索中的花式预训练
  10. java安卓版_Java虚拟机安卓版下载
  11. python中element什么意思_什么是Python中等效的’nth_element’函数?
  12. 芯片,建立在沙粒上的帝国!
  13. 计算机管理储存u盘无法使用,U盘无法识别的三种常见情况
  14. 酷我音乐歌手写真接口分享
  15. 单商户商城系统功能拆解39—分销应用—分销等级
  16. Windows服务器怎么连接?远程连接服务器命令
  17. JS 特效学习 002:图片渐显
  18. Texmaker+Miktex配置
  19. 不同手机型号图文预览_关于iPhone的不同型号手机和不同版本系统
  20. java 数据库连接池链接数据库

热门文章

  1. C语言读取文件大量数据到数组
  2. Software Defined Networking(Week 2, part 2)
  3. Codeforces Round #354 (Div. 2) A. Nicholas and Permutation
  4. ubuntu开机时出现“waiting for network configuration” 问题的解决
  5. powershell excel 导入 sqlserver
  6. sqlite3 not found问题解决方法
  7. 国内10大广告联盟各自有哪些优势?
  8. C++函数重载与引用的较好的练习实例
  9. 浏览器的控制台-----后期更新
  10. python之深浅copy与id