gpt4 book ai didi

java - 如何更改存储为像素值的图像的对比度和亮度

转载 作者:搜寻专家 更新时间:2023-11-01 02:30:43 26 4
gpt4 key购买 nike

我有一个存储为像素值数组的图像。我希望能够对此图像应用亮度或对比度滤镜。有什么简单的方法或算法可以用来实现这一点。

这是我的代码...

   PlanarImage img=JAI.create("fileload","C:\\aimages\\blue_water.jpg");
BufferedImage image = img.getAsBufferedImage();

int w = image.getWidth();
int h = image.getHeight();
int k = 0;

int[] sbins = new int[256];
int[] pixel = new int[3];

Double d = 0.0;
Double d1;
for (int x = 0; x < bi.getWidth(); x++) {
for (int y = 0; y < bi.getHeight(); y++) {
pixel = bi.getRaster().getPixel(x, y, new int[3]);
k = (int) ((0.2125 * pixel[0]) + (0.7154 * pixel[1]) + (0.072 * pixel[2]));
sbins[k]++;
}
}

最佳答案

我的建议是使用 Java 的内置方法来调整亮度和对比度,而不是尝试自己调整像素值。做这样的事情似乎很容易......

float brightenFactor = 1.2f

PlanarImage img=JAI.create("fileload","C:\\aimages\\blue_water.jpg");
BufferedImage image = img.getAsBufferedImage();

RescaleOp op = new RescaleOp(brightenFactor, 0, null);
image = op.filter(image, image);

float 是亮度的百分比。在我的示例中,它将亮度增加到现有值的 120%(即比原始图像亮 20%)

有关类似问题,请参阅此链接... Adjust brightness and contrast of BufferedImage in Java

有关示例应用程序,请参阅此链接... http://www.java2s.com/Code/Java/Advanced-Graphics/BrightnessIncreaseDemo.htm

关于java - 如何更改存储为像素值的图像的对比度和亮度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10105521/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com