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