Kullanıcının ön kamera ile fotoğrafını çekip, ardından sunucuma yüklenmekte olduğu bir Android uygulamasına sahibim. Birçok fotoğrafın sunucumun çok karanlık olduğunu fark ettim (bazen kullanıcının yüzünü görmek neredeyse imkansızdır).Android'de karanlık fotoğraflar nasıl algılanır?
Bu tür fotoğrafları filtrelemek ve bildirimi göstermek istiyorum (ör. "Fotoğraf çok karanlık. Bir fotoğraf daha çekin"). Android'de böyle bir görevi nasıl başarabilirim?
DÜZENLEME:
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;
}
Ama yine de net bir fikir nasıl yok: Bir tek piksel için parlaklık nasıl hesaplanacağını öğrendim
(: https://stackoverflow.com/a/16313099/2999943 bu cevaba 's teşekkür) tüm görüntü parlaklığını "durum" belirlemek için. Baska öneri?
niçin ortalama değeri elde etmek aynı şekilde tüm pikselleri analiz ve bu kullanılmasın? – JonasCz