0

我有一张我加载到位图的照片。我检查了一些像素的颜色。但是在图片中,由于光线和其他因素,有时应该是红色的东西有点多一点栗色、洋红色、橙色等。我正在使用方法 getPixel(x,y) 返回颜色的 int 值。是否有可能检查此 int 值是否在定义类似于红色的颜色的区间内。或者是任何网站或其他东西,我可以在其中找到任何定义或颜色描述?

4

2 回答 2

1

是的。从http://developer.android.com/reference/android/graphics/Color.htmlColor整数的格式为 0xffRRGGBB。(ff 实际上是一个 alpha 通道,即不透明度,但通常是不透明的,因此是 ff)。

有许多站点可以让您输入这些值以查看颜色 - 例如http://www.colourchart.net/。您可以选择每个颜色分量的外部边界。

您也可以考虑使用Color.colorToHSV()which 将使您能够根据色调、饱和度和亮度而不是红色、绿色和蓝色来指定边界 - 这在您的上下文中可能在逻辑上更容易。

于 2013-02-09T19:40:41.110 回答
1

Basicall RGB 不适合比较颜色,但是有一个很好的颜色模型叫做 HSV。因此,您应该将 RGB 值转换为 HSV,然后将颜色的色调值与阈值进行比较。

例如,绿色的色调值为 120,但您可以接受 90 到 150 之间的值。

此链接显示如何在颜色模型之间进行转换:http ://www.cs.rit.edu/~ncs/color/t_convert.html

有关 HSV 模型的更多信息:http ://en.wikipedia.org/wiki/HSL_and_HSV

于 2013-02-09T20:12:26.513 回答