Я пытаюсь выполнить некоторую обработку изображения на цветном изображении, и для этого мне нужно разделить значения RGB и изменить их отдельно. Я просто реализую фильтр увеличения яркости. Я делаю это в java. Может кто-нибудь помочь мне, пожалуйста
Поиск RGB цветного изображения
Ответы (1)
У вас есть несколько вариантов.
Во-первых, вам нужно иметь возможность загрузить изображение, поддерживающее класс BufferedImage
. Для этого лучше всего использовать ImageIO
API. Взгляните на Чтение/загрузка изображения.
Получив это, вы можете получить информацию о пикселях разными способами.
Одним из самых простых является использование BufferedImage#getRGB
, который возвращает упакованное целое число пикселя.
В зависимости от типа изображения можно получить отдельные значения цвета Color(int, boolean)
, который соответствующим образом распакует целое число (вы также можете сделать это вручную, но я никогда не помню математику, и это проще).
В качестве альтернативы вы можете получить доступ к Raster
напрямую через BufferedImage#getData
, который предоставляет вам доступ к большему количеству методов для управления базовой информацией о пикселях (например, захват областей пикселей).
Теперь, если все это кажется более забавным, чем вы можете справиться, вы можете легко выполнить увеличение яркости изображения с помощью BufferedImageOp
...
См. Настройка яркости и контрастности BufferedImage в Java и Как изменить контраст и яркость изображения, хранящиеся в виде значений пикселей и Измените яркость изображения с помощью RescaleOp для примеров (это только несколько первых, которые появились в Google)