Ps:通过 RGB 值计算 HSB 值

在 Photoshop 中,HSB(色相、饱和度和明度)仅作为表达颜色的一种方式而存在,并不是一种颜色模式。

色相/饱和度命令就是基于色彩三要素进行调色的常用命令。

还有一个与 HSB 相关的滤镜:HSB/HSL 滤镜,用于实现 RGB、HSB 及 HSL 三种模型的相互转换。

Photoshop 的“拾色器”对话框、“颜色”面板以及“信息”面板上可以基于 HSB 设置或显示颜色值。

下图展示了色相、饱和度和明度在“拾色器”中的表示方式。

057aef134af228d02fdc8160783098f4.png

通过分析 H、S、B 三个值与 R、G、B 三个值的关系可更好地理解这两种颜色表达方式之间的关系。

  ◆  ◆

计算色相 H

通过 R、G、B 值计算色相 H 值的公式:

H = {x|0,120,240} +(median(R,G,B) - min(R,G,B))÷ (max(R,G,B) - min(R,G,B)) × 60

从以上公式可以看出,色相 H 与 R、G、B 三个值都有关系。

公式解释:

1、{x|0,120,240} 

这个集合用于确定基本色相。 

0 对应红色(R),120 对应绿色(G),240 对应蓝色(B)。

比如,RGB 值为 R = 0, G = 255, B = 128,三者中最大值为绿色(G),故此处的值为 120。

2、max(R,G,B)

取 R、G、B 三个值中的最大值。

例如,如果 R = 100, G = 150, B = 200,那么 max(R, G, B) = 200。

3、median(R,G,B)

取 R、G、B 三个值中居中的那个值。

例如,如果 R = 100, G = 150, B = 200,那么 median(R, G, B) = 150。

4、min(R,G,B)

取 R、G、B 三个值中的最小值。

例如,如果 R = 100, G = 150, B = 200,那么 min(R, G, B) = 100。

5、60

将除式的结果乘以 60,可以将结果标准化到色相值的范围内(0 到 360 度)。

示例 1:

假设 RGB 值为 R = 255, G = 0, B = 0(纯红色):

max(R,G,B) = R = 255

min(R,G,B) = G = 0

median(R,G,B) = B = 0

3b17b23089ce4827c0b58a300b9c95f9.png

套用公式:

H = 0 +(0 - 0)÷ (255 - 0) × 60 = 0

示例 2:

假设 RGB 值为 R = 5, G = 255, B = 250:

max(R,G,B) = G = 255

min(R,G,B) = R = 5

median(R,G,B) = B = 250

8056c115f7f3f98543590fc1ec1e00a9.png

套用公式:

H = 120 +(250 - 5)÷ (255 - 5) × 60 ≈ 179

示例 3:

假设 RGB 值为 R = 150, G = 50, B = 250:

max(R,G,B) = B = 250

min(R,G,B) = G = 50

median(R,G,B) = R = 150

2db181c0f5a80be2b8e34fdab55c5439.png

套用公式:

H = 240 +(150 - 50)÷ (250 - 50) × 60 = 270

  ◆  ◆

计算饱和度 S

通过 R、G、B 值计算饱和度 S 值的公式:

S = (max(R,G,B) - min(R,G,B)) ÷ max(R,G,B) × 100%

从以上公式可以看出,饱和度 S 与 R、G、B 值中的最大值和最小值有关。最大值与最小值相差越大,饱和度越高。相差越小,则饱和度越低。

示例 1:

假设 RGB 值为 R = 255, G = 0, B = 0(纯红色):

max(R,G,B) = R = 255

min(R,G,B) = G = 0

套用公式:

S = (255 - 0) ÷ 255 × 100% = 100%

示例 2:

假设 RGB 值为 R = 5, G = 255, B = 250:

max(R,G,B) = G = 255

min(R,G,B) = R = 5

套用公式:

S = (255 - 5) ÷ 255 × 100% = 98%

示例 3:

假设 RGB 值为 R = 250, G = 251, B = 220:

max(R,G,B) = G = 251

min(R,G,B) = B = 220

套用公式:

S = (251 - 220) ÷ 255 × 100% = 12%

  ◆  ◆

计算明度 B

通过 R、G、B 值计算明度 B 值的公式:

B = max(R,G,B) ÷ 255 × 100%

从以上公式可以看出,明度 B 只与 R、G、B 值中最大的值有关。最大值越大,明度越高。

示例 1:

假设 RGB 值为 R = 255, G = 0, B = 0(纯红色):

max(R,G,B) = R = 255

套用公式:

B = 255 ÷ 255 × 100% = 100%

示例 2:

假设 RGB 值为 R = 53, G = 75, B = 26:

max(R,G,B) = G = 75

套用公式:

B = 75 ÷ 255 × 100% = 29%

示例 3:

假设 RGB 值为 R = 250, G = 251, B = 220:

max(R,G,B) = G = 251

套用公式:

B = 251 ÷ 255 × 100% = 98%

6e6e4078f67f863a3bf7547ab389e66d.jpeg

“点赞有美意,赞赏是鼓励”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/397864.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是交互测试?

最近有接触到一个有趣的名词:交互测试。 在对这个名词进行解释之前,我先去特意请教了一个产品经理朋友,问下交互的概念。于是知道了我们的行业里面还有很多个有趣的职位:交互设计师、UE、UI、前端、设计.....等等等等这些&#x…

C语言——查漏补缺

前言 本篇博客主要记录一些C语言的遗漏点,完成查漏补缺的工作,如果读者感兴趣,可以看看下面的内容。都是一些小点,下面进入正文部分。 1. 字符汇聚 编写代码,演示多个字符从两端移动,向中间汇聚 #inclu…

Linux:多线程(三.POSIX信号量、生产消费模型、线程池、其他常见的锁)

上次讲解了:Linux:多线程(二.理解pthread_t、线程互斥与同步、基于阻塞队列的生产消费模型) 文章目录 1.POSIX信号量1.1引入1.2回顾加深理解信号量1.3信号量的操作接口 2.基于循环队列的生产消费模型2.1循环队列2.2整个项目 3.线程…

网络协议七 应用层 HTTP 协议

应用层常见的协议 HTTP协议 一. 如何查看我们的http 协议全部的内容有哪些呢? 一种合理的方法是 通过 wireshark 软件,找到想要查看的HTTP --->追踪流--->HTTP流 来查看 结果如下:红色部分 为 发送给服务器的,蓝色部分为服…

40【源码】数据可视化:基于 Echarts + Python 动态实时大屏 - 无线网络大数据平台

数据可视化大屏的出现,掀起一番又一番的浪潮,众多企业主纷纷想要打造属于自己的“酷炫吊炸天”的霸道总裁大屏驾驶舱。 之前有小伙伴们建议我出一些视频课程来学习Echarts,这样可以更快上手,所以我就追星赶月的录制了《Echarts -…

为什么在职场上大家都在装,别人才会觉得你很强

在职场中,有时候会发现那些看似强大的人并不一定是真的强,而是他们懂得如何装出来。 上班就如甄嬛传里的宫斗,懂得“装”是一种智慧和生存技能。为什么在职场要会装?别人才会觉得你很强? 1、装冷脸形象没坏处 在职场…

C语言 | Leetcode C语言题解之第327题区间和的个数

题目: 题解: int countRangeSumRecursive(long long* sum, int lower, int upper, int left, int right) {if (left right) {return 0;} else {int mid (left right) / 2;int n1 countRangeSumRecursive(sum, lower, upper, left, mid);int n2 cou…

中国自动驾驶出租车冲击网约车市场

近年来,中国的自动驾驶技术迅速发展,对传统网约车市场构成了越来越大的冲击。随着科技巨头百度旗下的萝卜快跑等公司加速推广无人驾驶出租车,这一趋势引发了广泛的讨论和担忧。 自动驾驶技术的迅猛发展 中国自动驾驶行业正处于快速发展阶段&…

企业数字化转型解决方案

企业数字化转型解决方案旨在通过系统化的方法和先进技术,帮助企业在数字时代实现全面的业务升级和优化。首先,解决方案包括构建和部署强大的数字基础设施,如云计算平台、大数据分析系统和物联网设备,以支持企业的业务运营和数据处…

一个人活成一个团队:python的django项目devops实战

文章目录 一、需求规划二、代码管理三、创建流水线1、配置流水线源 四、自动测试五、自动构建六、自动部署七、总结 对于开发团队来说提高软件交付的速度和质量是一个永恒的话题,对于个人开发者来说同样如此。作为一个码农,一定会有几个自己私有的小项目…

Mysql 脚本转换为drawio ER 脚本

Navicat 导出数据库脚本 通过代码转换脚本 import java.io.BufferedReader; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.regex.Matcher; import java.util.regex.Pattern;/*** SQL 脚本转换为 drawio ER 脚本*/ pu…

【C++指南】函数重载:多态性的基石

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《C指南》 期待您的关注 目录 引言 一、函数重载的概念 二、函数重载的原理 三、函数重载的应用场景 四、函数重载的规则 五…

使用 Vue 官方脚手架初始化 Vue3 项目

Vite 官网:https://cn.vitejs.dev/ Vue 官网:https://vuejs.org/ Vue 官方文档:https://cn.vuejs.org/guide/introduction.html Element Plus 官网:https://element-plus.org/ Tailwind CSS 官网:https://tailwindcss.…

Xilinx课程,就这么水灵灵地上线了~

如果你想了解: 如何利用精通流水线(Pipeline)技术,让电路设计效率倍增? 如何掌握利用性能基线指导设计流程的方法? 如何理解集成电路设计中的UltraFast Design Methodology Implementation设计方法学中的…

100 Exercises To Learn Rust 挑战!准备篇

公司内部的学习会非常活跃!我也参与了Rust学习会,并且一直在研究rustlings。最近,我发现了一个类似于rustlings的新教程网站:Welcome - 100 Exercises To Learn Rust。 rustlings是基于Rust的权威官方文档《The Rust Programming…

docker技术中docker-compose与harbor技术

docker-composeharbor docker网络概念 当大规模使用docker时,容器间通信就成了一个问题。 docker支持的四种网络模式在run时指定 host模式 --nethost 容器和宿主机共享一个网络命名空间 container模式 --net{容器id} 多个容器共享一个网络 none模式 --netnone …

【深度学习】TTS,CosyVoice,推理部署的代码原理讲解分享

文章目录 demo代码加载配置文件speech_tokenizer_v1.onnx(只在zero_shot的时候使用)campplus.onnx(只为了提取说话人音色embedding)`campplus_model` 的作用代码解析具体过程解析总结示意图CosyVoiceFrontEndCosyVoiceModel推理过程总体推理过程推理速度很慢: https://git…

基于Python爬虫+机器学习的长沙市租房价格预测研究

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

数据库(三):DML

DML,全称Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改、查。 一、添加数据(INSERT) 注意事项: ①插入数据时,指定的字段顺序需要与值的顺序…

手机在网时长查询接口如何对接?(二)

一、什么是手机在网时长查询接口? 传入手机号码,查询该手机号的在网时长,返回时间区间,支持携号转网号码查询。 二、手机在网时长查询接口适用于哪些场景? 比如:信用评估辅助 (1&#xff09…