私と私のプロジェクト グループは、ペイントボールのような 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 }
誰もがこれを行うより効率的な方法を知っていますか?これは、暗い橋や張り出した建物の下、暗い/明るい色の服が必要な場合など、ほぼすべての種類の天候、暗いまたは明るい、屋内または屋外で機能します.