使用 Android 相机识别颜色

问题描述 投票:0回答:2

目前正在从事一项有关 Android 颜色检测的学术项目。我正在尝试使用 Android 相机在实时预览期间或拍照后检测颜色。

我正在寻找类似这张图片的东西。这是ColorGrab Android 应用程序屏幕截图。基本上我想将每种颜色识别为特定的一种颜色。让我们举个例子,假设应用程序检测到#FF6CBB,但这种颜色实际上类似于粉红色,但我想在列表中将此颜色标记为红色。所以基本上我想将所有颜色转换为基本的 8 到 10 种颜色。因此,任何颜色代码都应该落在特定范围内,并且该范围应该仅代表一种颜色。

在此图像中,颜色代码实际上并不是红色的十六进制代码,但我们可以将检测到的颜色代码放入红色类别中。

总体而言,我的程序目标应该是将色轮的任何颜色代码识别为特定 10 种颜色中的一种颜色。我如何以及以何种方式计算这个东西,我应该使用两种颜色之间的最短欧几里德距离吗?

任何人都可以告诉我计算这个东西的算法或方法吗?

image 1 

Screen Shot of ColorGrab Application

example of color distribution

enter image description here

java android algorithm colors detection
2个回答
0
投票
具有欧几里德距离的

k-最近邻(在您的情况下k=1)可能适用于您的情况,因为您只有3个维度(此方法遭受维数灾难

您还可以使用不同的距离度量来过期,例如汉明距离


0
投票

已经很久了...您可以使用这个包作为示例。它通过多个调色板

中的值检测颜色名称
final u = UniColorName(palette);
print(u.name(0x00ff00.rgbInt8Color));

输出:

green

© www.soinside.com 2019 - 2024. All rights reserved.