Autore Topic: Rilevare pixel neri o molto scuri  (Letto 455 volte)

Offline gabric

  • Utente senior
  • ****
  • Post: 615
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Rilevare pixel neri o molto scuri
« il: 01 Ottobre 2013, 16:47:15 CEST »
0
Salve!
nella mia applicazione devo lavorare su i singoli pixel di un immagine.
innanzitutto, rendo l'immagine in scala di grigio con questo codice

   
Codice (Java): [Seleziona]
private Bitmap BiancoNero(Bitmap originalBitmap) {
        ColorMatrix colorMatrix = new ColorMatrix();
        colorMatrix.setSaturation(0);

        ColorMatrixColorFilter colorMatrixFilter = new ColorMatrixColorFilter(
                colorMatrix);

        Bitmap blackAndWhiteBitmap = originalBitmap.copy(
                Bitmap.Config.ARGB_8888, true);

        Paint paint = new Paint();
         paint.setColorFilter(colorMatrixFilter);

        Canvas canvas = new Canvas(blackAndWhiteBitmap);
        canvas.drawBitmap(blackAndWhiteBitmap, 0, 0, paint);

        return blackAndWhiteBitmap;
    }

dopo di che, disegno una matrice con soli 0 e 1 (0 bianco, 1 nero)
con il seguente controllo

Codice (Java): [Seleziona]
if(colore==-1)
                                        matrice[i][j] = 0; //Lo zero indica il bianco
                                else if(colore == -16777216)
                                        matrice[i][j] = 1; //pixel neri
                                else
                                        matrice[i][j] =0; //Tutte le sfumature di colori non vengono prese

Come posso far per prendere anche le sfumature di grigio?
cioè se consideriamo bianco 0% e nero 100%, vorrei trovare tutti i colori che siano sopra il 66%
mi basta mettere nell'if "colore >= 5592405"       che  equivale a -16777216 / 3
funzionerebbe?