簡體   English   中英

如何將彩色圖像轉換為純黑白圖像(0-255格式)

[英]How to convert color image to pure black and white 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;
        }
}

我有一個黑白輸出圖像,但當我放大圖像時,我發現了一些灰色區域。 我希望輸出圖像只包含黑色或白色。

如果我目前的做法是正確或不正確,請告訴我? 如果我是,請提出另一種方式。

您正在將圖像從顏色正確轉換為黑白; 但是,當您將輸出保存為JPEG ,會因有損壓縮而創建一些顏色。

只需將輸出保存到PNG (或JPEG以外的任何其他設置),輸出將只是黑色和白色,如您所料。

ImageIO.write(binarized, "png",new File("blackwhiteimage") );

例如,如果您有一個保存為PNG的二進制圖像,則直方圖可能類似於(僅限嚴格的黑白像素):

PNG直方圖

對於相同的圖像,如果保存為JPEG ,您可以看到在直方圖中,白色和黑色附近的一些像素開始出現

JPEG直方圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM