Comment faire pour convertir un BufferedImage noir et blanc?
Comment puis-je convertir un de couleur BufferedImage monochrome? Je veux que l'image soit complètement divisé entre deux codes rvb, blanc et noir. Donc si il y a une bordure autour de l'image plus claire ou plus sombre de l'ombre de l'arrière-plan et l'arrière-plan est en cours de conversion à blanc, alors je veux la frontière pour être convertis en blanc, et ainsi de suite.
Comment puis-je faire cela?
Si son nécessaire pour enregistrer l'image /charger à partir du disque, je peux le faire si nécessaire.
Edit: Code pour tester ceci:
package test;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.HashSet;
import javax.imageio.ImageIO;
public class Test
{
public static void main(String[] args)
{
try
{
BufferedImage img = ImageIO.read(new File("http://i.stack.imgur.com/yhCnH.png") );
BufferedImage gray = new BufferedImage(img.getWidth(), img.getHeight(),
BufferedImage.TYPE_BYTE_GRAY);
Graphics2D g = gray.createGraphics();
g.drawImage(img, 0, 0, null);
HashSet<Integer> colors = new HashSet<>();
int color = 0;
for (int y = 0; y < gray.getHeight(); y++)
{
for (int x = 0; x < gray.getWidth(); x++)
{
color = gray.getRGB(x, y);
System.out.println(color);
colors.add(color);
}
}
System.out.println(colors.size() );
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Image utilisée:
À l'aide de ceci, j'obtiens la sortie de 24 comme la dernière sortie, j'.e il y avait 24 couleurs trouvées dans cette image, quand il devrait y avoir 2.
Oui, comme les niveaux de gris par exemple en ce qu'une! Il va transformer complètement toutes les couleurs de gris & blanc?
Eh bien, je l'ai essayé, mais d'autres couleurs dans l'image restent, ce n'est pas complètement gris / blanc. Toutes les autres suggestions?
Merci, et fait
Bon, je vais accepter le mien quand il me le permet 🙂
OriginalL'auteur user2790209 | 2013-09-21
Vous devez vous connecter pour publier un commentaire.
La solution a été d'utiliser
BufferedImage.TYPE_BYTE_BINARY
que le type plutôt que deTYPE_BYTE_GRAY
. À l'aide de BINAIRE provoque une pure noir & blanc copie de l'image à créer, pas de couleurs à l'exception de b & w. Pas joli à regarder, mais parfait pour des choses comme le ROC, où les couleurs ont besoin pour être exact.OriginalL'auteur user2790209