CSS   发布时间:2022-04-17  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了colors – 将RGBW颜色转换为标准RGB / HSB表示大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在为家庭自动化系统中的灯光管理构建一个界面.我设法控制各种供应商的标准开/关和可调光,几乎没有问题,但现在我遇到了与RGB灯有关的问题.

我目前使用的是RGBW LED灯条 – 具体来说,我正在使用低成本的RGBW灯:灯由四个LED组成,每个LED都可以单独控制.

为了更清楚 – 我正在研究一些c#代码,它们应该检索当前选择的颜色并在UI中显示它,并使用户能够指定灯光的新颜色.为了设置颜色并检索它,我必须使用命令提供程序,使我能够通过Web服务发送和接收命令.

提供商使用RGBW颜色 – 使用红色,绿色,蓝色和白色四个组件.为了表示我界面上的当前灯光颜色,我想将服务返回的RGBW颜色转换为更标准的RGB / HSB方案.

搜索网页,我找到的唯一的颜色转换参(根据我的理解,不包括rgb到rgbw转换的ac样本,必须有一些严重的错误)这篇文章显示了从HSI到RGBW的转换,这是与我需要的相反:link here

我正在寻找一些关于如何实现这种转换的见解(或者为什么不可能的简单解释).就我而言,从RGB到RGBW的转换是任意的 – 单个RGB值可以表示为多个RGBW值,但相反的转换应该是单义的.另请注意,然我使用的是c#,但也可以自由地引用其他语言的算法 – 语言不是问题,问题是我不知道数学做颜色转换.

解决方法

如何将RGB转换为RGBW将在以下文章的2.1中描述

http://www.mirlab.org/conference_papers/International_Conference/ICASSP%202014/papers/p1214-lee.pdf

你的LED想象成一个巨大的像素.奥利弗的回答使用了Wo = min(Ri,Gi,Bi),什么是计算上便宜而且正常工作.本文介绍了最小化功耗的其他替代方案,这对家庭自动化项目有利.我也参与了一个有OpenHAB,Arduino和RGBW LED的家庭自动化项目,一方面提出的替代方案也不错,另一方面,一个巨大的LUT将无法工作并转换arduino eighter上的所有值.
我建议你尝试使用本文中引用的不那么节能的技术来校正RGB值:

假设Ri,Bi是颜色输入,整数从0到255,所以Q = 255,输出为Wo,Ro,Go和Bo,值为0到255:

@H_642_23@m = max(Ri,Bi) m = min(Ri,Bi) Wo = if (m/M < 0.5) use ( (m*M) / (M-m) ) else M Q = 255 K = (Wo + M) / m Ro = floor( [ ( K * Ri ) - Wo ] / Q ) Go = floor( [ ( K * Gi ) - Wo ] / Q ) Bo = floor( [ ( K * Bi ) - Wo ] / Q )

在实施之前在电子表格中进行练习,在Wo = m,m ^ 2和-m ^ 3 m ^ 2 m上进行实验,用正确的Qw校正Wo值,你会惊讶于没有校正的简单解决方案不是人们想要的期待和其他答案变化不大.检查纸张的颜色失真结果,我想如果你不校正RGB值,你最终会得到一些褪色的颜色.

大佬总结

以上是大佬教程为你收集整理的colors – 将RGBW颜色转换为标准RGB / HSB表示全部内容,希望文章能够帮你解决colors – 将RGBW颜色转换为标准RGB / HSB表示所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。