私は、ユーザーがフロントカメラで自分の写真を撮ってから写真を自分のサーバーにアップロードしているAndroidアプリを持っています。私は多くの写真が私のサーバーに来ていることに気付きました(ユーザーの顔を見るときれいにすることはほとんど不可能です)。Androidで暗い写真を検出する方法
このような写真を除外して、アプリ側の通知を表示したい(「写真が暗すぎる、写真をもう一度撮る」など)。 Androidでこのような作業をどのように達成できましたか?
EDIT:
私は1つのピクセルのための明るさを計算する方法を見出した(この回答への感謝:https://stackoverflow.com/a/16313099/2999943を):
private boolean isPixelColorBright(int color) {
if (android.R.color.transparent == color)
return true;
boolean rtnValue = false;
int[] rgb = {Color.red(color), Color.green(color), Color.blue(color)};
int brightness = (int) Math.sqrt(rgb[0] * rgb[0] * .299 + rgb[1]
* rgb[1] * .587 + rgb[2] * rgb[2] * .114);
if (brightness >= 200) { // light color
rtnValue = true;
}
return rtnValue;
}
しかし、それでもまだ、私はどのように明確な考えを持っていません画像全体の明るさ「状態」を決定する。助言がありますか?
は、なぜ平均値を取得するのと同じ方法ですべてのピクセルを分析し、それを使わないのでしょうか? – JonasCz