2011-04-21 165 views
2

那里... 我有一些关于使用java的图像处理作业的问题。我的问题: 如何在java编程中获得rgb图像的每个像素的灰度值?如何获得java中的图像的每个像素的灰度级

我只知道一点关于如何通过语法image.getRGB(x,y)获得rgb值的每个像素以返回rgb值。我不知道的人,让灰度值的图像的每个像素....

感谢提前

回答

0

您也可以设置类型为TYPE_BYTE_GRAY的BufferedImage,并将图片绘制到其中,然后获取栅格数据并查找值。

1

我同意上一个答案。像BufferedImage一样创建BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_BYTE_GRAY)。从我所了解的光栅读取像素数据和写入像素数据或更新像素的可写光栅。我总是使用可写光栅,尽管这可能不是最好的方法,因为您可以读取像素数据并设置像素值。您可以通过WritableRaster获取栅格raster = image.getRaster();然后你可以通过使用raster.getSample(x,y,0)来获得一个像素的值;在参数的0是你想要得到这为灰度图像应该是0

0

补充丹尼尔的回答乐队:

WritableRaster wr = myBufferedImage.getRaster(); 

for(int i = 0; i < myBufferedImage.getWidth(); i++){ 
    for(int j = 0; j < myBufferedImage.getHeight(); j++){ 
     int grayLevelPixel = wr.getSample(i, j, 0); 
     wr.setSample(i, j, 0, grayLevelPixel); // Setting same gray level, will do nothing on the image, just to show how. 
    } 
} 
相关问题