gpt4 book ai didi

java - 获取灰度或黑白图像每个像素的像素值?

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

谁能建议我获取灰度图像每个像素的实际像素值的方法?

我使用此代码获取像素。但它只是给了我一个像素的红色值?我不知道黑白或灰度图像是否包含RGB像素,所以请告诉我,我使用的方法是对还是错?而且当我为我的图像绘制直方图时,它与同一图像的 imajeJ 直方图完全相反。所以我想我抓取灰度图像像素的方法有问题

因此,如果错误,获取像素的正确方法是什么。这是我的代码

 PlanarImage image = JAI.create("fileload", "C:\\16bit images\\alpXray.tiff");
BufferedImage bi = image.getAsBufferedImage();
int[] bins = new int[256];
int b=0;
for (int x = 0; x < bi.getWidth(); x++) {

for (int y = 0; y < bi.getHeight(); y++) {

int p= bi.getRaster().getSample(x, y,b); // (1) b=0 for red (2)b=1 for green(3) b=2 for bule

p=p/256;

bins[p]++;
}
}

最佳答案

RGB 图像的每个 channel 都是灰度级的。事实上,如果您可视化单个 channel (GIMP、photoshop),您只会看到灰色阴影。

通常要将 rgb 图像转换为灰色图像,您需要获取每个 channel 的三个值并进行算术平均。或者你只需​​要一个 channel 。如果我误解了这个问题,请告诉我..

编辑:好的。如果你有 3 channel 灰度图像,你可能有 3 个 channel ,每个 channel 的值相同。所以只需为每个像素取单 channel 的值。如果您只有一个 channel (16 位),则采用该像素。

关于java - 获取灰度或黑白图像每个像素的像素值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10121226/

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