计算机图形|RGB与HSV模型的转化

简介: 计算机图形|RGB与HSV模型的转化


问题描述

1  RGB模型

RGB模型是目前常用的一种彩色信息表达方式,它使用红、绿、蓝三原色的亮度来定量表示颜色。

根据三基色原理,用基色光单位来表示光的量,则在RGB颜色空间,任意色光F都可以用R、G、B三色不同分量的相加混合而成:

F=r[R]+g[G]+b[B]

RGB颜色空间可以用一个三维的立方体来描述:

图1. 1RGB颜色空间

一般的3D编程只需要使用RGB颜色空间就好了,但其实美术人员更多的是使用HSV(HSL),因为可以方便的调整饱和度和亮度。

有时候美术需要程序帮助调整饱和度来达到特定风格的渲染效果,这时候就需要转换颜色空间了。

而HSV模型正是由RGB模型转化而来.

2 HSV模型

HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间. HSV色系对用户来说是一种直观的颜色模型,对于颜色,人们直观的会问“什么颜色?深浅如何?明暗如何?”,而HSV色系则直观的表示了这些信息。

这个模型中颜色的参数分别是:色调(H),饱和度(S),明度(V)。

  1. 色调H
  2. 饱和度S
  3. 明度V

HSV模型可以看作是以RGB模型白色顶点(1,1,1)向黑色顶点(0,0,0)看过去形成了一个六边形,六边形边界表示H(色彩) ,水平轴表示纯度,明度沿垂直轴测量.

图2. 1HSV颜色空间

解决方案

3 二者相互转换公式

图3. 1RGB到HSV

图3. 2HSV到RGB

结语

在图像处理中,最常用的颜色空间是RGB模型,常用于颜色显示和图像处理,三维坐标的模型形式,非常容易被理解。而HSV模型,是针对用户观感的一种颜色模型,侧重于色彩表示,什么颜色、深浅如何、明暗如何。


目录
相关文章
|
机器学习/深度学习 算法 数据可视化
〖数据挖掘〗weka3.8.6的安装与使用(1)
Weka的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一款免费 的,非商业化软件,与之对应的是SPSS公司商业数据挖掘产品--Clementine ;weka是基于JAVA环境下开源的 机器学习(machine learning)以及数据挖掘(data mining)软件。Weka的主要开发者来自新西兰的怀卡托大学(The University of Waikato)。WEKA作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的
676 0
|
数据采集 存储 监控
探索数据治理的实践路径:构建高效、合规的数据生态系统
在当今这个数据驱动的时代,数据已成为企业最宝贵的资产之一,它不仅驱动着业务决策,还塑造着企业的竞争优势。然而,随着数据量的爆炸性增长和来源的多样化,如何有效管理这些数据,确保其质量、安全性及合规性,成为了企业面临的重大挑战。数据治理作为一套指导数据管理和使用的框架,其重要性日益凸显。本文将探讨推动数据治理的实践路径,旨在帮助企业构建高效、合规的数据生态系统。
|
算法 数据可视化 安全
基于DWA优化算法的机器人路径规划matlab仿真
本项目基于DWA优化算法实现机器人路径规划的MATLAB仿真,适用于动态环境下的自主导航。使用MATLAB2022A版本运行,展示路径规划和预测结果。核心代码通过散点图和轨迹图可视化路径点及预测路径。DWA算法通过定义速度空间、采样候选动作并评估其优劣(目标方向性、障碍物距离、速度一致性),实时调整机器人运动参数,确保安全避障并接近目标。
500 68
HSV色彩空间
【5月更文挑战第12天】HSV色彩空间。
617 8
|
存储 JSON 资源调度
next.js博客搭建_react-markdown渲染内容(第三步)
next.js博客搭建_react-markdown渲染内容(第三步)
653 1
|
Android开发 内存技术
Android 通过tinyalsa调试解决录制和播放音频问题
Android 通过tinyalsa调试解决录制和播放音频问题
1338 1
|
存储 前端开发 JavaScript
为什么0.1 + 0.2 不等于 0.3 ?
这篇编程技术文章探讨了为什么在多种编程语言中,0.1 + 0.2 不等于 0.3 的现象。问题源于计算机使用二进制浮点数表示小数,而二进制无法精确表示某些十进制分数,如 0.1 和 0.2。这导致它们在计算机内部被近似表示,从而在相加时产生微小误差。文章通过示例和图片解释了二进制浮点数的表示原理,并提供了将小数转换为整数再相加以及使用 `toFixed()` 方法或 decimal.js 库等解决精度问题的方法。
383 2
|
缓存 JavaScript 前端开发
JavaScript进阶 - Web Workers与Service Worker
【7月更文挑战第6天】JavaScript的Web Workers和Service Worker增强了浏览器的性能处理和离线功能。Web Workers处理后台计算,减轻主线程压力,但通信有开销,受同源策略限制。Service Worker则能拦截网络请求,支持离线缓存和推送通知,但其生命周期和权限管理需谨慎处理。通过理解它们的工作原理和限制,开发者能创建更流畅、更健壮的Web应用。
501 0
|
编译器 C语言 C++
编译器报错:qsort函数对-2147483648、2147483648溢出报错
编译器报错:qsort函数对-2147483648、2147483648溢出报错
392 0

热门文章

最新文章