Comment convertir une image couleur en image noir et blanc de l'image(0 à 255 format)
public class BlackWhite {
public static void main(String[] args)
{
try
{
BufferedImage original = ImageIO.read(new File("colorimage"));
BufferedImage binarized = new BufferedImage(original.getWidth(), original.getHeight(),BufferedImage.TYPE_BYTE_BINARY);
int red;
int newPixel;
int threshold =230;
for(int i=0; i<original.getWidth(); i++)
{
for(int j=0; j<original.getHeight(); j++)
{
//Get pixels
red = new Color(original.getRGB(i, j)).getRed();
int alpha = new Color(original.getRGB(i, j)).getAlpha();
if(red > threshold)
{
newPixel = 0;
}
else
{
newPixel = 255;
}
newPixel = colorToRGB(alpha, newPixel, newPixel, newPixel);
binarized.setRGB(i, j, newPixel);
}
}
ImageIO.write(binarized, "jpg",new File("blackwhiteimage") );
}
catch (IOException e)
{
e.printStackTrace();
}
}
private static int colorToRGB(int alpha, int red, int green, int blue) {
int newPixel = 0;
newPixel += alpha;
newPixel = newPixel << 8;
newPixel += red; newPixel = newPixel << 8;
newPixel += green; newPixel = newPixel << 8;
newPixel += blue;
return newPixel;
}
}
J'ai eu une impression en noir et blanc de l'image, mais comme j'ai agrandi l'image, j'ai découvert certaines zone grise. Je veux que l'image de sortie pour ne contenir que les couleurs noir ou blanc.
S'il vous plaît laissez-moi savoir si je suis correct ou incorrect dans ma démarche actuelle? Et si je le suis, s'il vous plaît suggérer une autre façon.
pourquoi ne vous vous souciez de
alpha
?OriginalL'auteur Yogesh | 2013-02-13
Vous devez vous connecter pour publier un commentaire.
De la conversion de l'image correctement à partir de la couleur au noir et blanc; toutefois, lorsque vous enregistrez la sortie comme
JPEG
certaines couleurs sont créés en raison de la avec perte compression.Simplement enregistrer la sortie de
PNG
(ou autre chose queJPEG
), et la sortie sera uniquement en noir et blanc, comme vous l'aviez prévu.Par exemple, si vous avez une image binaire qui a sauvé comme
PNG
l'histogramme peut être quelque chose comme (strictement pixels noir et blanc uniquement):Et pour la même image si vous avez enregistré en tant que
JPEG
, vous pouvez voir que dans l'histogramme des pixels près du blanc et du noir, couleurs commencent à apparaîtreOui de rien mais
JPEG
je viens de donner un exempleMerci il fonctionne 🙂
OriginalL'auteur iTech