rilho errado convertendo imagem para escala de cinza em Java
Estou convertendo uma imagem para escala de cinza em Java com o seguinte código:
BufferedImage originalImage = ImageIO.read(new File("/home/david/input.bmp"));
BufferedImage grayImage = new BufferedImage(originalImage.getWidth()
, originalImage.getHeight()
, BufferedImage.TYPE_BYTE_GRAY);
ColorSpace gray = ColorSpace.getInstance(ColorSpace.CS_GRAY);
ColorConvertOp colorConvert = new ColorConvertOp(gray, null);
colorConvert.filter(originalImage, grayImage);
ImageIO.write(grayImage, "bmp", new File("/home/david/output_java.bmp"));
sso parece funcionar, mas o problema é que a imagem de saída é muito diferente da imagem em escala de cinza gerada pelo gimp (veja exemplos abaixo
Posso controlar de alguma maneira como a imagem é gerada?Como posso tornar o resultado mais semelhante ao resultado do gimp?Imagem original
Imagem em escala de cinza gerada em Java:
Imagem em escala de cinza gerada no Gimp Image -> Mode -> Grayscale
):
BTT: Eu tenho um monte de imagens vindas do ffmpeg (com opção cinza) e elas são como imagens do Gimp, por isso quero a minha imagem dessa maneir