【问题标题】:Java color detectionJava颜色检测
【发布时间】:2024-01-22 12:36:01
【问题描述】:

我正在 java 中实现算法,它选择图像的一部分作为标记。 我的问题是

1) 选择标记区域后,如何得到标记颜色在RGB中的具体平均值作为颜色差异很小的像素数。

2) 如何根据之前的标记选择找到标记值,即颜色的阈值。

请提供一种算法,如果可能,请提供一个 java 实现。 提前致谢。

【问题讨论】:

  • 为了得到答案,你应该给读者一个提示,告诉你到目前为止你做了什么,你在哪里卡住了。越具体越好

标签: java algorithm colors computer-vision detection


【解决方案1】:

我不确定你尝试了什么,以及你卡在哪里,但这里是:

  1. 要获得平均颜色,最好的办法是尝试分别找到三个通道(R、G 和 B)的中值并将其用作均值。由于 RGB 颜色空间的特殊性质,均值很容易受到异常值的影响,中值则更少。

  2. 我假设您要选择与标记颜色相似的所有颜色。为此,您可以将颜色较小的所有像素euclidean distance 选择为上面选择的中值 RGB 颜色。

如果这对您不起作用,您可以查看alternative colorspaces。不过我觉得以上应该就够了。

【讨论】: