gpt4 book ai didi

java - 是否有一个函数可以对两个缓冲图像的光栅求和?

转载 作者:行者123 更新时间:2023-11-30 04:51:50 25 4
gpt4 key购买 nike

我正在进行 2D 过滤,并希望在灰度 BufferedImages 上逐个元素添加。是否有现有的功能可以为我完成此任务,或者我需要从头开始制作一个功能吗?

是否有某种矩阵类可以将栅格转换为矩阵来简化这个问题?

编辑:这是它的一般要点

    BufferedImageOp opX = new ConvolveOp(new Kernel(3,3, kernelX));
BufferedImageOp opY = new ConvolveOp(new Kernel(3,3, kernelY));
BufferedImage filtImageX = opX.filter(sourceImage, null);
BufferedImage filtImageY = opY.filter(sourceImage, null);
BufferedImage outputImage = addBufferedImages(filtImageX, filtImageY);

灰度转换:

public void toGrayscale() { 
BufferedImageOp op = new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_GRAY), null);
sourceImage = op.filter(sourceImage, null);
}

最佳答案

我不熟悉任何可以为您执行此操作的 Java 库。

您可以通过以下方式获取 [i,j] 处的像素:image.getRGB(i, j);

BufferedImage image = ...;
BufferedImage resultImage = ...

int rgb= image.getRGB(i, j);
resultImage.setRGB(i, j, rgb);

您还可以将缓冲图像转换为字节数组 [ https://stackoverflow.com/a/7388025/1007845 ].
请参阅此线程:how to convert image to byte array in java?获取 WritableRaster

编辑:

看起来 WritableRaster 在这种情况下可能有用:http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/image/WritableRaster.html

WritableRaster raster = image.getRaster();

for(int h=0;h<height;h++) {
for(int w=0;w<width;w++) {
int colour = 127;
raster.setSample(w,h,0,colour);
}
}

关于java - 是否有一个函数可以对两个缓冲图像的光栅求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9670001/

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