HSV和RGB相互转换

  • HSV
  • RGB
  • RGB转HSV算法(C#)
  • HSV转RGB算法(C#)

HSV

HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间。

色调H
用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,紫色为300°;
色调图谱

饱和度S
饱和度S表示颜色接近光谱色的程度。一种颜色,可以看成是某种光谱色与白色混合的结果。其中光谱色所占的比例愈大,颜色接近光谱色的程度就愈高,颜色的饱和度也就愈高。饱和度高,颜色则深而艳。光谱色的白光成分为0,饱和度达到最高。通常取值范围为0%~100%,值越大,颜色越饱和。
明度V
明度表示颜色明亮的程度,对于光源色,明度值与发光体的光亮度有关;对于物体色,此值和物体的透射比或反射比有关。通常取值范围为0%(黑)到100%(白)。
RGB和CMY颜色模型都是面向硬件的,而HSV(Hue Saturation Value)颜色模型是面向用户的。
HSV模型的三维表示从RGB立方体演化而来。设想从RGB沿立方体对角线的白色顶点向黑色顶点观察,就可以看到立方体的六边形外形。六边形边界表示色彩,水平轴表示纯度,明度沿垂直轴测量。

RGB

RGB色彩模式是工业界的一种颜色标准,是通过对红、绿、蓝三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是运用最广的颜色系统之一。

RGB转HSV算法(C#)

/// <summary>/// RGB convert hsv 输入和输出都归一化/// </summary>/// <param name="R">0~1</param>/// <param name="G">0~1</param>/// <param name="B">0~1</param>/// <param name="h">0~1</param>/// <param name="s">0~1</param>/// <param name="v">0~1</param>static void RGBToHSV(float R, float G, float B, ref float h, ref float s, ref float v){float max = 0, min = 0;max = Mathf.Max(R, G, B);min = Mathf.Min(R, G, B);v = max;if (max == 0)s = 0;elses = 1 - (min / max);if (max == min)h = 0;else if (max == R && G >= B)h = 60 / 360.0f * ((G - B) / (max - min));else if (max == R && G < B)h = 60 / 360.0f * ((G - B) / (max - min)) + 360 / 360.0f;else if (max == G)h = 60 / 360.0f * ((B - R) / (max - min)) + 120 / 360.0f;else if (max == B)h = 60 / 360.0f * ((R - G) / (max - min)) + 240 / 360.0f;}

HSV转RGB算法(C#)

/// <summary>/// HSV convert rgb 输入和输出都归一化/// </summary>/// <param name="h">0~1</param>/// <param name="s">0~1</param>/// <param name="v">0~1</param>/// <param name="R">0~1</param>/// <param name="G">0~1</param>/// <param name="B">0~1</param>static void HSVToRGB(float h, float s, float v, ref float R, ref float G, ref float B){h *= 360.0f;if (s == 0)R = G = B = v;else{h = h / 60;int i = (int)h;float C = h - i;float X = v * (1 - s);float Y = v * (1 - s * C);float Z = v * (1 - s * (1 - C));switch (i){case 0: R = v; G = Z; B = X; break;case 1: R = Y; G = v; B = X; break;case 2: R = X; G = v; B = Z; break;case 3: R = X; G = Y; B = v; break;case 4: R = Z; G = X; B = v; break;case 5: R = v; G = X; B = Y; break;}}}

HSV和RGB相互转换相关推荐

  1. 图像处理-HSV和RGB相互转换

    1.实现RGB到HSV的转换函数,函数声明:HSV RGB2HSV(COLORREF c) 函数功能:把COLORREF类对象c的颜色信息转换成一个HSV类对象返回. 代码: #include< ...

  2. 图像HSV和RGB的相互转换

    1. HSV转RGB max=max(R,G,B) min=min(R,G,B) if R = max, H = (G-B)/(max-min) if G = max, H = 2 + (B-R)/( ...

  3. 颜色空间模型(HSV\LAB\RGB\CMYK)

    通过Photoshop的拾色器,我们知道表征颜色的模型的不止一种,本文将系统并且详细讨论这四种模型(HSV.LAB.RGB和CMYK)之间的联系以及应用. 本文部分章节整合了多位优秀博主的博客(链接见 ...

  4. YUV RGB 相互转换矩阵

    YUV RGB 相互转换矩阵 不同色域下的转换矩阵 "BT2020 625 D65" RGB2XYZ Matrix: XYZ2RGB Matrix: RGB2YUV Matrix: ...

  5. HSI、HSV、RGB、CMYK、HSL、HSB、Ycc、XYZ、Lab、YUV颜色模型的区别

    HSI.HSV.RGB.CMYK.HSL.HSB.Ycc.XYZ.Lab.YUV颜色模型的区别 HSV颜色空间 HSV(hue,saturation,value)颜色空间的模型对应于圆柱坐标系中的一个 ...

  6. HSI、HSV、RGB、CMY、CMYK、HSL、HSB、Ycc、XYZ、Lab、YUV等颜色模型简介

    基本概念 所谓颜色模型就是指某个三维颜色空间中的一个可见光子集,它包含某个颜色域的所有颜色.例如,RGB颜色模型就是三维直角坐标颜色系统的一个单位正方体.颜色模型的用途是在某个颜色域内方便的指定颜色, ...

  7. 视频教程:YUV420和RGB相互转换--C++实现(二)

    我是Gem,今天做个简单的视频,我的耳机坏了,不好意思,没有声音,请原谅~~        时间很仓促,我把作业全部做完了,完整的过程我演示你看看,有什么问题请你指出来~~ 详细的代码说明和友好的界面 ...

  8. 颜色值JavaScript换算(HSV、RGB、十六进制颜色码)

    颜色值换算 在颜色的计算中,往往需要统一的标准 以下记录一些换算方法 HSV to RGB HSV 是指☞ Hue色相.Saturation饱和度.Value明度(亮度). HSVtoRGB(h, s ...

  9. JAVA编写RGB转HLS,RGB转HSV,HSV转RGB,RGB HLS HSV三种模式转换

    最近看了好多图像识别的例子,但是发现基本全是用Python写的,但是我们这里的需求是使用Java来写,至此,随手写几个函数,发出来供大家参考! 目录 1.RGB & HSV & HLS ...

  10. JS换算颜色值(HSV、RGB、Hex、十六进制颜色码)

    1.HSV to RGB HSV 是指☞ Hue色相.Saturation饱和度.Value明度(亮度) hsv2rgb(h, s, v) {let i, f, p1, p2, p3;let r = ...

最新文章

  1. 拼多多退出春晚红包合作,由抖音补位!
  2. python抓取贝壳房源信息
  3. Java语言编码规范(2)
  4. hadoop和spark搭建记录
  5. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(六)
  6. 数据返回nan_NumPy 的 nan 如何理解?
  7. Shell(13)——find
  8. 基于内容推荐系统中的常识
  9. 高性能网站架构设计之缓存篇(6)- Redis 集群(中)
  10. lr不能直接转ps编辑_摄影后期调色软件,Lr软件包
  11. Hadoop配置机架感知
  12. 一个编程指南还有这么多道道儿?
  13. 华为手机投屏电脑_华为手机如何实现无线投屏?
  14. 浅议“全局变量”、“多线程”和“编译器陷阱”
  15. 1概率论与数理统计_浙江大学B站
  16. arcpy判断图层是否存在的方法
  17. zabbix安装教程Linux环境部署zabbix3.2
  18. 网站备案服务器ip怎么填写,域名备案网站ip地址如何填写
  19. java bigdecimal 取整数_java-检查BigDecimal是否为整数值
  20. 有道云笔记markdown最好的转PDF格式文档方法

热门文章

  1. 编程都是人上人,果不其然!2020年度十大高薪岗位,程序员独领风骚!
  2. SSRF利用协议中的万金油——Gopher
  3. 弹性力学,塑性力学,流变学,连续介质力学,断裂力学,流体力学基本定义及关系
  4. Arcgis使用教程(十)ARCGIS地图制图之固定比例尺设计
  5. 电脑硬盘图标换成自己喜欢的图标
  6. telnet远程登录服务器端口,Telnet服务器远程登录过程
  7. 我的团长我的团第十七集
  8. 如何沟通?如何商务谈判!《沃顿商学院最实用的谈判课》epub免费下载
  9. STM32借助Mbed OS多线程调节电脑音量
  10. html全部颜色代码大全,html代码大全(基础使用代码)(颜色代码完整版)