我正在用 java 实现算法,它选择图像的一部分作为标记。 我的问题是
1)选择标记区域后,如何得到RGB中标记颜色的具体均值作为颜色差异较小的像素数。
2) 如何根据之前的标记选择找到标记值,即颜色的阈值。
请提供算法,如果可能,请提供 Java 实现。 提前致谢。
最佳答案
我不确定您尝试了什么,以及卡在哪里,但这里是:
要获得平均颜色,最好的办法是尝试分别找到三个 channel (R、G 和 B)的中值并将其用作平均值。由于 RGB 颜色空间的特殊性质,均值非常容易受到异常值的影响,而中值则不然。
我假设您要选择与您的标记颜色相似的所有颜色。为此,您可以选择颜色较小的所有像素 euclidean distance到上面选择的中值 RGB 颜色。
如果这对您不起作用,您可以查看 alternative colorspaces .但我认为以上内容应该足够了。
关于Java颜色检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7506579/