颜色空间

颜色模式

前提是你 提交于 2020-04-04 03:11:06
颜色模型就是指某个三维颜色空间中的一个可见光子集,它包含某个颜色域(使用颜色的领域)的所有颜色。 RGB颜色模型 RGB(Red, Green, Blue)颜色模型通常使用于彩色阴极射线 管等彩色光栅图形显示设备中,彩色光栅图形的显示器都使用R、G、B数值来驱动R、G、B 电子枪发射电子,并分别激发荧光屏上的R、G、B三种颜色的荧光粉 发出不同亮度的光线,并通过相加混合产生各种颜色;扫描仪也是通过吸收原稿经反射或透射而发送来 的光线中的R、G、B成分,并用它来表示原稿的颜色。 RGB颜色模型称为与设备相关的颜色模型 , RGB颜色模型所覆盖的颜色域取决于显示设备荧光点的颜色特性,是与硬件相关的 。它是我们使用最多,最熟悉的颜色模型。它采用三维直角坐标系。红、绿、蓝原色是加性原色,各个原色混合在一起可以产生复合色。如图所示。 RGB颜色模型通常采用如图所示的单位立方体来表示。在正方体的主对角线上,各原色的强度相等,产生由暗到明的白色,也就是不同的灰度值。(0,0,0)为黑色,(1,1,1)为白色。正方体的其他六个角点分别为红、黄、绿、青、蓝和品红。 HSV颜色模型 每一种颜色都是由色相(Hue,简H),饱和度(Saturation,简S)和色明度(Value,简V)所表示的。HSV模型对应于 圆柱坐标系中的一个圆锥形子集,圆锥的顶面对应于V=1。它包含RGB模型中的R=1,G=1,B

Gamma校正与线性空间

雨燕双飞 提交于 2020-02-29 18:18:08
基础知识部分 为了方便理解,首先会对( Luminance )的相关概念做一个简单介绍。如果已经了解就跳到后面吧。 我们用Radiant energy(辐射能量)来描述光照的能量,单位是焦耳(J),因为光实际是以一定速度在传播的电磁波,所以把单位时间内的传播的 Radiant energy(能量)称作 radiant flux ( 辐射通量),用来描述他的能量表现,单位瓦特(Watt )。 Radiant intensity ( 辐射强度 )用来指定 radiant flux ( 辐射通量)的方向,正式的来说,他是用来定义每个立体角的 Radiant energy(辐射能量) 的传递速度,它的单位是瓦特/球面度((W · sr - 1 )。 辐射强度( Radiant intensity )通常会是一个很大的空间范围,但对于使用像素的成像系统来说是一个很小的区域,所以使用 intensity 来作为图像数据的度量并不合适。那么就需要一个可以对应面积的单位,我们把通过单位面积的能量( Radiant energy ),称作辐射照度( Irradiance )。 而把在每个单位面积上的辐射强度 ( Radiant intensity ),称作辐射率( radiance ), 他的单位是瓦特/球面度/平方米。 图像保存在文件里的(如TIFF),就是于辐射率成正比

RGB颜色空间转换小笔记

早过忘川 提交于 2020-02-09 14:06:52
摘自书籍: Advanced High Dynamic Range Imaging (second edition, 2018) Francesco Banterle,Alessandro Artusi,Kurt Debattista,Alan Chalmers CRC Press,Taylor & Francis Group sRGB presents a non-linear transformation for each color channel to linearize the signal when displayed on LCD and CRT display. Such a nonlinear transformation is called an electro-optical transfer function (EOTF) in the standards community. Its inverse is typically called an opto-electrical transfer function (OETF). This is because there is a non-linear relationship between the output intensity generated by the displaying device

【译】Unity3D Shader 新手教程(5/6) —— Bumped Diffuse Shader

浪子不回头ぞ 提交于 2020-02-08 09:38:50
本文为翻译,附上 原文链接 。 转载请注明出处—— polobymulberry-博客园 。 动机 如果你满足以下条件,我建议你阅读这篇教程: 你想学习片段着色器(Fragment Shader)。 你想实现复杂的多通道着色器(multipass),但是对其不是很了解。 你想使用上面提到的两种技术(片段着色器和多Pass)来实现描边效果的Toon shader,你就需要理解这两种技术的概念。 学习资源 Martin Kraus's fantastic Wiki Book GLSL Programming/Unity 引论 在教程的第4部分,我们创建了一个相当好的toon shader,该shader使用了边缘光照(rim lighting)对模型进行描边 — 但是这种方法的问题在于它只能使用在表面光滑的模型上。对于那些平整的,有棱角的表面,我们计算其边缘的法向量时,会发现两个面的边界法向会产生突变(比如正方形的六个面,单个面上的法向都一致,但是两个面之间的法向会发生突变,不像球面上的法向是渐变的),这将产生我们不想要的边界效果。 有一个更好的办法对模型进行描边效果处理 — 先将模型背面稍微扩大一些(边缘延伸一些)然后渲染为全黑,最后正常渲染模型正面即可,这样我们看到的黑色边缘其实是背面呈现的颜色。这就要求在shader中使用两个Pass — 你可能还记得

颜色空间转换

烂漫一生 提交于 2020-02-07 00:11:11
1、转换颜色空间 HSV:色调(H),饱和度(S),明度(V)。 比如从 BGR 到灰度图,或者从BGR 到 HSV 等 我们要用到的函数是:cv2.cvtColor(input_image,flflag),其中 flflag 就是转换类型。 对于 BGR↔Gray 的转换,我们要使用的 flflag 就是 cv2.COLOR_BGR2GRAY。 同样对于 BGR↔HSV 的转换,我们用的 flflag 就是 cv2.COLOR_BGR2HSV。 你还可以通过下面的命令得到所有可用的 flflag。 import cv2 flags=[i for in dir(cv2) if i startswith('COLOR_')] print flags 注意:在 OpenCV 的 HSV 格式中,H(色彩/色度)的取值范围是 [0,179], S(饱和度)的取值范围 [0,255],V(亮度)的取值范围 [0,255]。但是不 同的软件使用的值可能不同。所以当你需要拿 OpenCV 的 HSV 值与其他软 件的 HSV 值进行对比时,一定要记得归一化。 2、物体跟踪 在 HSV 颜色空间中要比在 BGR 空间 中更容易表示一个特定颜色。 • 从视频中获取每一帧图像 • 将图像转换到 HSV 空间 • 设置 HSV 阈值到蓝色范围。 • 获取蓝色物体,当然我们还可以做其他任何我们想做的事

关于汽车颜色识别

我的未来我决定 提交于 2020-01-20 06:44:44
#1,首先说说我自己做的一个小程序 有参考CSDN中的一篇博客,具体文章链接找不到了。 主要思想:将RGB颜色空间中的图像转换到HSV空间,根据常见九种颜色的H、S、V范围来判断给定图像中的汽车最大概率属于哪种色系的车。 常见颜色的HSV范围:(也是参考的网上的为主) 程序接口:【输入】Mat类型,汽车图片的patch;【输出】string类型,上面九种颜色中的一种; 算法流程图: #2,存在的问题 可能原因:我个人觉得,HSV空间中的值与实际肉眼中的颜色并不是线性的映射关系,所以单纯用一个线性范围来给出一中颜色的HSV值是有问题的,实验结果也验证了我这个猜想。很多车子在进去检测时都会有误,如下给出几种: 尽管代码有问题,但还是在此贴出,以备之后改进: /*********************************** ----------------------------------- Name: sophia Date: 20161206 Email: hxinwen1218@sina.com ----------------------------------- Function: Reco Identification the color of the cars. ************************************/ #include

颜色空间

我是研究僧i 提交于 2020-01-06 00:09:06
颜色通常用三个相对独立的属性来描述,三个独立变量综合作用,自然就构成一个空间坐标,这就是颜色空间。而颜色可以由不同的角度,用三个一组的不同属性加以描述,就产生了不同的颜色空间。但被描述的颜色对象本身是客观的,不同颜色空间只是从不同的角度去衡量同一个对象。 颜色空间按照基本结构可以分两大类:基色颜色空间和色、亮分离颜色空间。前者的典型是 RGB,还包括 CMY、CMYK、CIE XYZ 等;后者包括 YCC/YUV、Lab、以及一批“色相类颜色空间”。CIE XYZ 是定义一切颜色空间的基准,很奇妙的是,它即属于基色颜色空间,也属于色、亮分离颜色空间,是贯穿两者的枢纽。色、亮分离颜色空间中的子类型“色相类颜色空间”,是把颜色分成一个表亮属性,和两个表色属性,其中有一个表色属性是色相,而色相以外的两个属性可以选用不同的变量来定义,而色相的概念不变,因此就构成一族共同使用色相属性,另加表亮属性和表色属性各一个组成的颜色空间,它们是颜色空间中的一个家族,暂且统称为 HSB 颜色空间。 RGB颜色空间是一种大的分类,具体而言RGB空间还包含多种空间,其中sRGB是HP和Microsoft联合制定的标准RGB空间,除此之外还有Adobe RGB,Apple RGB,ColorMatch RGB等等,他们通过不同的方式表示RGB三种颜色,使得它们具有不同的色彩宽度,GAMMA值也是不一样的

颜色空间

与世无争的帅哥 提交于 2020-01-06 00:08:54
RGB、Lab、YUV、HSI、HSV等颜色空间的区别 RGB颜色空间 RGB(red,green,blue)颜色空间最常用的用途就是显示器系统,彩色阴极射线管,彩色光栅图形的显示器 都使用R、G、B数值来驱动R、G、B 电子枪发射电子,并分别激发荧光屏上的R、G、B三种颜色的荧光粉 发出不同亮度的光线,并通过相加混合产生各种颜色;扫描仪也是通过吸收原稿经反射或透射而发送来 的光线中的R、G、B成分,并用它来表示原稿的颜色。RGB色彩空间称为与设备相关的色彩空间,因为不同 的扫描仪扫描同一幅图像,会得到不同色彩的图像数据;不同型号的显示器显示同一幅图像,也会有不同 的色彩显示结果。显示器和扫描仪使用的RGB空间与CIE 1931 RGB真实三原色表色系统空间是不同的,后者 是与设备无关的颜色空间。btw:Photoshop的色彩选取器(Color Picker)。可以显示HSB、RGB、LAB和CMYK 色彩空间的每一种颜色的色彩值。 Lab 颜色空间 Lab颜色空间是由CIE(国际照明委员会)制定的一种色彩模式。自然界中任何一点色都可以在Lab空间中表达出来,它的色彩空间比RGB空间还要大。另外,这种模式是以数字化方式来描述人的视觉感应,与设备无关,所以它弥补了RGB和 CMYK模式必须依赖于设备色彩特性的不足。由于Lab的色彩空间要比RGB模式和CMYK模式的色彩空间大

OpenGL ES学习笔记(二)——平滑着色、自适应宽高及三维图像生成

喜夏-厌秋 提交于 2020-01-01 21:58:26
首先申明下,本文为笔者学习《OpenGL ES应用开发实践指南(Android卷)》的笔记,涉及的代码均出自原书,如有需要,请到原书指定 源码地址 下载。 《 Android学习笔记——OpenGL ES的基本用法、绘制流程与着色器编译 》中实现了OpenGL ES的Android版HelloWorld,并且阐明了OpenGL ES的绘制流程,以及编译着色器的流程及注意事项。本文将从现实世界中图形显示的角度,说明OpenGL ES如何使得图像在移动设备上显示的更加真实。首先,物体有各种颜色的变化,在OpenGL ES中为了生成比较真实的图像,对图像进行平滑着色是一种常见的操作。其次,移动设备存在横竖屏的切换,进行图像显示时,需要根据屏幕方向考虑屏幕的宽高比,使图像不因屏幕切换而变形。最后,现实中的物体都是三维的,我们观察物体都带有一定的视角,因此需要在OpenGL ES实现三维图像的显示。本文主要包括以下内容: 平滑着色 自适应宽高 三维图像生成 一、平滑着色 平滑着色是通过在三角形的每个点上定义不同的颜色,在三角形的表面混合这些颜色得到的。那么,如何用三角形构成实际物体的表面呢?如何混合定义在顶点出的不同颜色呢? 首先引入三角形扇的概念。以一个中心顶点作为起始,使用相邻的两个顶点创建第一个三角形,接下来的每个顶点都会创建一个三角形,围绕起始的中心点按扇形展开。为了使扇形闭合

OpenCV学习笔记(5)――颜色空间转换

匿名 (未验证) 提交于 2019-12-03 00:40:02
学习如歌对图像进行颜色空间转换,从BGR到灰度图,或者从BGR到HSV等 创建一个程序用来从一幅图像中获取某个特定颜色的物体 1.转换颜色空间   OpenCV中有超过150种进行颜色空间转化的方法,但是实际上经常用到的也就两种:BGR<->Gray,BGR<->HSV   要用的函数是cv2.cvtColor(input_img,flag)flag就是转换类型   cv2.COLOR_BGR2GRAY 就是BGR<->Gray转换   cv2.COLOR_BGR2HSV 就是BGR<->HSV的转化 (介绍一下HSV格式,H指色彩/色度,取值[0,179],S是饱和度[0,255],V是亮度[0,255]。不同软件使用的值可能不同,所以当需要拿OpenCV的HSV值与别的软件的HSV值进行对比时要注意归一化) 也可以用一下代码获得所有可用的flag import cv2 flags = [i for i in dir(cv2) if i.startswith( ‘COLOR_‘)] print(flags) 2.实现物体的跟踪   在知道如何将BGR转换到HSV后,就可以利用这一点来提取带有某个特定颜色的物体。在HSV的颜色空间中要比BGR空间中个更容易表示某一个特定颜色。我们先尝试提取一个蓝色的物体,步骤如下: 从视频中获取每一帧图像 将图像转化到HSV空间