我正在尝试将灰度图像转换为二进制图像。我尝试了以下代码,但它不起作用。我给出了一段我的代码,其中灰度图像被设置为JLabel
图标,该图标将被转换为二进制并再次设置为JLabel
图标。请帮我找出我的错误。“
icon1 = l2.getIcon();
im = ((ImageIcon)icon1).getImage();
bi = new BufferedImage(im.getWidth(null), im.getHeight(null), BufferedImage.TYPE_BYTE_GRAY);
Graphics g = bi.createGraphics();
g.drawImage(im, 0, 0, null);
g.dispose();
for(int i=0; i<bi.getHeight(); i++)
{
for(int j=0; j<bi.getWidth(); j++)
{
Color c = new Color(bi.getRGB(j, i));
if(c.getRed()<=125)
{
bi.setRGB(j, i, 0);
}
else if(c.getRed()>125)
{
bi.setRGB(j, i, 1);
}
}
}
icon= new ImageIcon(bi.getScaledInstance((panel2.getWidth())*15/15,(panel2.getHeight())*15/15, Image.SCALE_AREA_AVERAGING));
l4.setIcon(icon);
l4.setVisible(true);