我想忽略所有其他颜色。我只想计算白色和黄色之间的颜色(亮黄色,浅黄色......一直到白色)。然后对某个图像的黄色程度进行评级。那可能吗?
我一直在玩,Bitmap.getPixel()
但我不知道如何忽略其他颜色。
在此示例中,图像 1 将是一个选择,因为它在亮黄色和白色之间具有更多颜色。
我怎样才能只检测到淡黄色?
好吧,我会专注于像素的色调。使用此代码:
// get HSV values for the pixel's colour
float[] pixelColorHsv = new float[3];
Color.colorToHSV(Bitmap.getPixel(x,y), pixelColorHsv);
什么是黄色可能取决于您,但范围可能在 72 到 49 之间(您可以使用此工具来了解一下),然后您可以量化它在此范围内的位置或亮度和饱和度的高低。
该Bitmap.getPixel(int x, int y)
方法返回一个Color
具有该像素 RGB 值的对象。黄色是红色和绿色的组合,所以纯黄色 RGB 三元组应该是 (255, 255, 0),对吧?如果变暗,则降低红色和绿色值。如果你变得更亮,你会提高蓝色值。因此,基本上,您需要找到一种方法来检测任何给定像素的 RGB 值与 (255, 255, 0) 的“接近”程度,然后为整个图像累积这些接近值。对第二张图像执行相同的操作,然后比较 2 个结果。