2015-11-02 3 views
3

Je voudrais trouver chaque pixel de l'image, puis je vais obtenir le total de la valeur de pixel, alors je vais trouver la valeur moyenne. Je compare la valeur de chaque pixel avec la moyenne que je reçois, si elle est> 255, la valeur du pixel deviendra 1 (représente la couleur noire), si < 255 deviendra 0 (représente la couleur blanche). Après cela, je définis la nouvelle couleur RVB et dessine l'image de sortie. Basé sur mon concept, je pensais que l'image de sortie sera image en noir et blanc, mais il montre juste en couleur noire. OutputImage moyenne seuil en java

public class Imej { 
    public void mapping(BufferedImage image) throws IOException { 
     BufferedImage binary = new BufferedImage(image.getWidth(), 
      image.getHeight(), BufferedImage.TYPE_BYTE_BINARY); 
     int i, j; 
     int w = image.getWidth(); 
     int h = image.getHeight(); 

     image.setRGB(i, j, new Color(pixel[i][j]).getRGB()); 
     ImageIO.write(binary,"png",output); 
    } 
} 

C'est readimage.

public void readimage() { 
    BufferedImage image = null; 
    File f = null; 
    try { 
     image = ImageIO.read(new File(/** path **/)); 
     //System.out.println(image); 
     mapping(image); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     System.exit(1); 
    } 
} 

public static void main(String[] args) { 
    Imej a = new Imej(); 
    a.readimage(); 
} 
+0

Voulez-vous dire '225', ou voulez-vous dire' 255'? Ou, voulez-vous dire «w» ou «h» selon le contexte? –

+0

is 255 ......... – kenreal

+0

Votre image d'entrée * current * est 300x300, cependant. –

Répondre

1

Vous devez créer une fonction moyenne, qui renvoie la moyenne du pixel. Quelque chose comme int mean(int[][] pixels, int i, int j). Ensuite, vous devez changer la première ligne dans votre instruction if pour être if (mean(pixel, i, j) > mean) { //...

 if (pixel[i][j] > mean) 
       pixel[i][j]=1; 

devrait être

 if (mean(pixel, i, j) > mean) 
       pixel[i][j]=0xFFFFFF; 
+0

j'ai essayé de changer, mais le résultat toujours même .. ou peut-être encore avoir une autre erreur .. – kenreal

+0

merci dude.i peut créer l'image en noir et blanc .. sans créer la fonction .. – kenreal