Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android中将任何颜色代码转换为最接近的人类颜色_Java_Android_Colors_Camera_Rgb - Fatal编程技术网

Java 在Android中将任何颜色代码转换为最接近的人类颜色

Java 在Android中将任何颜色代码转换为最接近的人类颜色,java,android,colors,camera,rgb,Java,Android,Colors,Camera,Rgb,我将做一个android应用程序,它将使用实时相机预览或相机捕获的图像来检测任何固体背景图像的颜色 我可以将rgb/十六进制值颜色转换为我在特定列表中已定义的最接近的颜色名称吗。假设我在列表中定义了10种众所周知的颜色。一旦我确定了任何颜色的十六进制代码,我就需要从列表中找到最接近的颜色 如何使用高效快速的算法来实现这一点?android调色板类中是否有API可以执行同样的操作 谢谢我建议只计算到所有预定义颜色的距离,然后选择最接近的颜色。您可以尝试定义color1(r1、g1、b1)和colo

我将做一个android应用程序,它将使用实时相机预览或相机捕获的图像来检测任何固体背景图像的颜色

我可以将rgb/十六进制值颜色转换为我在特定列表中已定义的最接近的颜色名称吗。假设我在列表中定义了10种众所周知的颜色。一旦我确定了任何颜色的十六进制代码,我就需要从列表中找到最接近的颜色

如何使用高效快速的算法来实现这一点?
android调色板类
中是否有API可以执行同样的操作


谢谢

我建议只计算到所有预定义颜色的距离,然后选择最接近的颜色。您可以尝试定义color1(r1、g1、b1)和color2(r2、g2、b2)之间的距离,如下所示:| color1-color2 |=sqrt(sqr(r1-r2)+sqr(g1-g2)+sqr(b2-b1))。如果你有大约1000种预定义的颜色,这将非常快,即使是线性搜索。你也可以用谷歌搜索更好的距离函数来解决这个问题。

为什么要向下投票?这个问题比我上一个问题更具体。上一个问题包含关于使用实时摄像机检测色码的内容。“最近”的定义是什么?亮度接近,颜色接近,饱和度接近?请注意,这取决于文化。非洲的一些人无法区分绿色和棕色,因为对他们来说,这两种颜色都被称为“地球”。不幸的是,我现在找不到视频。但看看为什么是深灰色!=浅灰色。@Thomas Closest在预定义列表中的hexcode表示接近。因此
FF0000
FE0000
的距离为
10000
,但
0000FF
0000FE
的距离为
1
?当然不是。如果你仔细考虑你的问题,你很快就会找到一个算法。