Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java BuffereImage-获取灰度彩色模型图片中像素的值_Java_Pixel_Grayscale - Fatal编程技术网

Java BuffereImage-获取灰度彩色模型图片中像素的值

Java BuffereImage-获取灰度彩色模型图片中像素的值,java,pixel,grayscale,Java,Pixel,Grayscale,我使用此代码将一个buffereImage转换为灰度。我通常通过buffereImage.getRGB(I,j)获得像素值,以及R、G和B的gor值。但是如何获得灰度图像中像素的值呢 编辑:对不起,忘记了转换 static BufferedImage toGray(BufferedImage origPic) { BufferedImage pic = new BufferedImage(origPic.getWidth(), origPic.getHeight(), BufferedI

我使用此代码将一个
buffereImage
转换为灰度。我通常通过
buffereImage.getRGB(I,j)
获得像素值,以及R、G和B的gor值。但是如何获得灰度图像中像素的值呢

编辑:对不起,忘记了转换

static BufferedImage toGray(BufferedImage origPic) {
    BufferedImage pic = new BufferedImage(origPic.getWidth(), origPic.getHeight(), BufferedImage.TYPE_BYTE_GRAY);
    Graphics g = pic.getGraphics();
    g.drawImage(origPic, 0, 0, null);
    g.dispose();
    return pic;
}

如果您有RGB图像,则可以获得如下(红色、绿色、蓝色、灰色)值:

BufferedImage img;//////read the image
int rgb = img.getRGB(x, y);
int r = (rgb >> 16) & 0xFF;
int g = (rgb >> 8) & 0xFF;
int b = (rgb & 0xFF);
灰色是(r,g,b)的平均值,如下所示:

int gray = (r + g + b) / 3;
但如果将RGB图像(24位)转换为灰度图像(8位):


你能发布你用来转换它的代码吗?“使用这个代码。”代码在哪里?有兴趣知道如何获得一个函数的alpha值吗pixel@SriHarshaChilakapatialpha是(rgb>>24)&0xFFHey Alya,既然我有了它,我怎么能用一个新的灰度值来创建rgb呢?从灰度图像中获取rgb是不可能的,因为你没有信息来做这件事,所以你将使用3个值来得到它(R,G,B)在你得到灰色后,你将丢失这些值信息阅读这些答案,然后在谷歌上搜索以了解为什么你不能进行转换,或者至少返回你所拥有的彩色图像
int gray= img.getRGB(x, y)& 0xFF;/////////will be the gray value