2016-12-01 18 views
2

Ich habe ein Bild, in dem es 6 (jeweils ein Pixel) weiße Punkte mit R = 240, G = 240, B = 240 wie unten Bild.Anzahl der Punkte in Bitmap

Ich berechne Farbwert für jedes Pixel, indem Sie den folgenden Code verwenden, aber das Problem ist, dass diese Methode kein genaues Ergebnis liefert.

Mache ich die richtige Methode? Wenn ja, warum gibt diese Methode kein genaues Ergebnis? Danke im Voraus.

int getDotCount(Bitmap bm) { 
     int count = 0; 

     final int width = bm.getWidth(); 
     final int height = bm.getHeight(); 

     for (int x = 0; x < width; x++) { 
      for (int y = 0; y < height; y++) { 
       int pixel = bitmap.getPixel(x, y); 

       //RGB value for dot is 240 
       if (Color.red(pixel) == 240 && 
         Color.red(pixel) == Color.blue(pixel) && 
         Color.red(pixel) == Color.green(pixel)) { 
        count++; 
       } 
      } 
     } 

     return count; 
    } 

enter image description here

+0

Sieht für mich richtig aus, da scheint ein anderes Problem zu sein. – Henry

+0

Könnte es sein, dass jeder Punkt tatsächlich 4 Pixel groß ist? – Henry

+0

ya ich kann 4 Pixel für jeden Punkt machen. Aber kannst du mir den Grund sagen? –

Antwort

3

Nach langen Recherchen mein Problem, das ich Abbildung endlich aus. Ich setzte oben Bild in drawable Ordner und es wurde von Android skaliert. Um die Skalierung eines Bildes zu vermeiden, setze ich es in drawable-nodpi. Es löst mein Problem.

Vielen Dank an alle, die versucht haben, mir zu helfen. Prost!!!

Verwandte Themen