Неправильная яркость при преобразовании изображения в оттенки серого в Java
Я конвертирую изображение в оттенки серого в Java с помощью следующего кода:
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"));
Кажется, это работает, но проблема в том, что выходное изображение сильно отличается от изображения в оттенках серого, созданного gimp (см. Примеры ниже).
Могу ли я каким-то образом контролировать, как генерируется изображение?Как я могу сделать результат более похожим на результат GIMP?Исходное изображение:
Серое изображение, созданное в Java:
Изображение в оттенках серого, созданное в Gimp (Image -> Mode -> Grayscale
):
Кстати, у меня есть куча изображений из ffmpeg (с серой опцией), и они похожи на изображения Gimp, поэтому я хочу, чтобы мое изображение было таким.