我正在尝试对彩色图像进行一些图像处理,而对于我这样做,我需要分离RGB值并单独修改它们。我只是在增加亮度滤镜。我在java中这样做。请有人帮帮我
答案 0 :(得分:1)
您有几个选择。
首先,您需要能够加载支持BufferedImage
类的图像。为此,您最好使用ImageIO
API。看看Reading/Loading an Image。
完成后,您可以通过多种方式获取像素信息。
最简单的方法之一是使用BufferedImage#getRGB
,它返回像素的压缩整数。
根据图像的类型,您可以获得单独的颜色值Color(int, boolean)
,这将相应地解包整数(您也可以手动执行此操作,但我从不记住数学,这更简单)。< / p>
另外,您可以通过Raster
直接访问BufferedImage#getData
,这可以让您访问更多操作基础像素信息的方法(例如抓取像素区域)
现在,如果所有这些听起来更有趣,那么您可以使用BufferedImageOp
轻松执行图像增亮......
请参阅Adjust brightness and contrast of BufferedImage in Java和How to change the contrast and brightness of an image stored as pixel values以及Change brightness of image using RescaleOp的示例(这些只是Google上出现的少数几个)