- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
<分区>
正如我之前所说 ( RGB to Philips Hue (HSB) ) 我仍然没有放弃将简单的 RGB 值转换为 Philips Hue 可接受的值的希望。
适用于 iPhone 和 Android 的官方应用程序允许您从随机照片中选择一种颜色,色调会相应地自行调整。所以一定有某种公式。
不过这次我想我刚刚在这篇有趣的在线文章中找到了这个公式:
我一直在尝试将他的解释转换为 Java 语言,但我没有得到想要的结果。有人知道出了什么问题吗?
郑重声明,我使用的是飞利浦 Hue 灯泡。
public static List<Double> getRGBtoXY(Color c) {
// For the hue bulb the corners of the triangle are:
// -Red: 0.675, 0.322
// -Green: 0.4091, 0.518
// -Blue: 0.167, 0.04
double[] normalizedToOne = new double[3];
float cred, cgreen, cblue;
cred = c.getRed();
cgreen = c.getGreen();
cblue = c.getBlue();
normalizedToOne[0] = (cred / 255);
normalizedToOne[1] = (cgreen / 255);
normalizedToOne[2] = (cblue / 255);
float red, green, blue;
// Make red more vivid
if (normalizedToOne[0] > 0.04045) {
red = (float) Math.pow(
(normalizedToOne[0] + 0.055) / (1.0 + 0.055), 2.4);
} else {
red = (float) (normalizedToOne[0] / 12.92);
}
// Make green more vivid
if (normalizedToOne[1] > 0.04045) {
green = (float) Math.pow((normalizedToOne[1] + 0.055)
/ (1.0 + 0.055), 2.4);
} else {
green = (float) (normalizedToOne[1] / 12.92);
}
// Make blue more vivid
if (normalizedToOne[2] > 0.04045) {
blue = (float) Math.pow((normalizedToOne[2] + 0.055)
/ (1.0 + 0.055), 2.4);
} else {
blue = (float) (normalizedToOne[2] / 12.92);
}
float X = (float) (red * 0.649926 + green * 0.103455 + blue * 0.197109);
float Y = (float) (red * 0.234327 + green * 0.743075 + blue + 0.022598);
float Z = (float) (red * 0.0000000 + green * 0.053077 + blue * 1.035763);
float x = X / (X + Y + Z);
float y = Y / (X + Y + Z);
double[] xy = new double[2];
xy[0] = x;
xy[1] = y;
List<Double> xyAsList = Doubles.asList(xy);
return xyAsList;
}
这不是重复的吗?请阅读引用问题以充分理解。这是一个转换为 XY 的问题。引用的问题是关于将 RGB 转换为 HSB。这怎么能一样?!?!
为什么CIE XY色彩空间中没有棕色或灰色? 最佳答案 xy 色度图不是颜色空间;它是色彩空间的二维投影,旨在将色调和饱和度与亮度分开。为了表示灰色和棕色,你需要这个第三维,因为灰色基本上是深白色,棕
我想为 XYZ CIE 颜色模型绘制剖面图,如下所示: 你知道怎么做吗? 最佳答案 很简短... 您可以通过为标准观察者绘制 xy(我有 XY 而不是 xy)数据来绘制谱线(马蹄形)。然后,您可以通过
这个问题在这里已经有了答案: RGB to Philips Hue (HSB) (5 个答案) 关闭 8 年前。 正如我之前所说 ( RGB to Philips Hue (HSB) ) 我仍然没有
在 OpenCV 中,我正在使用颜色空间 CIE Luv 中的 cv::Mat,Mat 数据类型为 uint8。 我正在尝试找出每个 channel 的值范围。以下是正确的吗? L can be an
我将 OpenCV 用于我的一些图像处理相关代码。我被困在一个特定的点上。 在特定代码中,我需要根据图像的 CIE L*a*b* 值比较图像的像素值。我知道对于 BGR 我们可以做这样的事情: //
我正在尝试在已绘制的 CIE 1931 颜色空间上绘制一些颜色值(坐标)。我已经导出了要绘制的 XYZ 颜色值,表示为 [X, Y, Z]- [50,57,10][36,43,15][28,36,8]
我想将 YUV (YCbCr) 中的像素值转换为 CIE L* a* b* 颜色空间。我是否必须通过 RGB 和 CIEXYZ 色彩空间,或者有人知道直接转换的公式吗? 最佳答案 您需要完成每个步骤。
我有一个很长的十六进制字符串数据,数据内容是RGB,可以代表X Y Z。现在如何从RGB颜色空间中提取3D模型?OpenCV有帮助吗?或者其他一些库。现在我可以想出一个想法。首先找到颜色的最小立方体。
我在一年前创建了一个 Java 应用程序,它基本上是一个网站的多线程套接字服务器。我围绕一个教程构建了这个,我扩展它来做很多事情,包括使用 Flash 客户端的实时多人游戏。我使用的教程如下(法语):
如何在 Javascript 中拥有 CIE(色度/开尔文温度)色域? 我在 Canvas 上绘制了 XYZ 到 RGB 颜色三 Angular 形,就像绘图一样 . 但我还需要像这样的整个 CIE
我正在尝试在 C++ 中使用 openCV 加载 CIE Lab* 图像。在网上我只能找到加载 RGB 图像并将其转换为 LAB 图像的示例,但我已经有了 LAB 图像,所以如何加载它而不是访问 L、
我想使用 python 2.7 脚本,该脚本应该在 Linux 或 Windows 下工作,将图像从 RGB 转换为 Hexachrome(或 CIELAB 或 CIE XYZ)。我想知道是否有任何库
有人能告诉我为什么具有相同 rgb 值(例如 127、127、127)的颜色在使用 sRGB 空间的图像和使用 CIE RGB 空间的图像中看起来完全相同吗?由于一个是非线性的(有 Gamma 校正)
我正在创建我自己的基于 PHP 的应用程序,我想在其中将 RGB 颜色更改为 CIE 1931 的 xy 格式。 如何将 RGB 颜色规范转换为 CIE 颜色空间? 最佳答案 先用变换矩阵计算X、Y、
我有一个数据库表,其中每一行都是一种颜色。我的目标:给定输入颜色,计算其与 DB 表中每种颜色的距离,并按该距离对结果进行排序。或者,作为用户故事陈述:当我选择一种颜色时,我希望看到与我选择的颜色最相
我正在尝试使用文档中提供的函数将表示具有 8 位深度的 RGB 图像的给定 Mat 转换为 Lab : cvtColor(source, destination, ); 我尝试了以下转换代码: CV_
我正在将 opencv 用于某个图像处理代码。我需要从某张图片中提取颜色层。所以我所做的是保持像素具有特定值并将剩余像素设置为背景色(在本例中为白色)。对于某些问题,我必须在 CIE-L*a*b* 色
我已经实现了几个函数来将 sRGB 转换为 CIE-L*a*b*色彩空间。 现在,我想用它来进行抖动,但我不确定如何准确辨别哪种颜色是“较低”颜色,哪种颜色是“较高”颜色。 当在一维色彩空间(灰度)中
我试图在 Linux 帐户上配置 Weblogic 12.2.1.3。在阅读了 oracle 文档后,我了解到我们通过运行位于 /opt/weblogic12213/wlserver_12.2.1.3
我是一名优秀的程序员,十分优秀!