我和我的项目组正在制作一个类似于 Paintball 的 Android 应用程序。当您射击某人时,它会检查以下内容:
- 对手的颜色是否在十字准线(屏幕中央)?(荧光黄或荧光橙背心)
- 他们是那个方向的对手(使用设备指南针)吗?
- 他们是那个方向范围内的对手(使用 GPS)吗?
目前的问题在于第一次检查。我们计划在 Android 中使用 Color.colorToHSV 方法使用 HUE 和/或 HSV 代码,包括亮度和饱和度。虽然在太黑(天气)的情况下,我们会遇到一些问题,并希望得到一些反馈,以了解哪种方法最有效地为我们的彩色背心获得最佳结果。
通过一些测试,我们目前使用 Color.colorToHSV 方法的以下范围:
float[] currentHsv = new float[3];
Color.colorToHSV(Utils.findColor(myImageBitmap), currentHsv);
float hue = currentHsv[0];
float saturation = currentHsv[1];
float brightness = currentHsv[2];
// Fluor Yellow
if((hue >= 58 && hue <=128) && brightness > 0.40 && saturation <= 1.0){ // some code here }
// Fluor orange
else if((hue >= 4 && hue <=57) && brightness > 0.45 && saturation >= 0.62){ // some code here }
有谁知道这样做的更有效方法,它适用于几乎任何类型的天气类型,黑暗或明亮,内部或外部,在黑暗的桥梁或悬垂的建筑物下方,深色/浅色衣服需要它等等。