我有一张我加载到位图的照片。我检查了一些像素的颜色。但是在图片中,由于光线和其他因素,有时应该是红色的东西有点多一点栗色、洋红色、橙色等。我正在使用方法 getPixel(x,y) 返回颜色的 int 值。是否有可能检查此 int 值是否在定义类似于红色的颜色的区间内。或者是任何网站或其他东西,我可以在其中找到任何定义或颜色描述?
问问题
2184 次
2 回答
1
是的。从http://developer.android.com/reference/android/graphics/Color.html,Color
整数的格式为 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 回答