如何將現有的彩色BufferedImage轉換爲單色?我希望圖像僅在兩個rgb代碼(黑白)之間完全分割。因此,如果圖像周圍有一個邊框,背景是較淺或較深的陰影,並且背景正在轉換爲白色,則我希望邊框也會轉換爲白色,以此類推。如何將BufferedImage轉換爲黑色和白色?
我該怎麼做?
如果必要保存圖像/從磁盤加載它,我可以做到這一點,如果有必要。
編輯:代碼來測試這一點:使用
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();
}
}
}
圖片:
利用這一點,我得到的24輸出作爲最後的輸出,即有24個在此圖像中找到的顏色應該是2.
贊[this](http://stackoverflow.com/a/14514294/418556)? –
@AndrewThompson是的,就像那個灰色的例子!它會完全將所有顏色轉換爲灰色和白色? – user2790209
@AndrewThompson嗯,我已經嘗試過了,但圖像中的其他顏色仍然存在,它不完全是灰色/白色。還有其他建議嗎? – user2790209