如何在java中获取黑白图像的像素值

时间:2016-07-18 16:37:53

标签: java image-processing

我是图像处理新手。我试图获取黑白图像的像素值。我在这里搜索过但找不到合适的方法。我看到很多关于RGB值的帖子,但我正在寻找具有特定黑白值的样本,我相信这将是一个M x N x 1阵列。我想知道如何在java中实现这一点。

2 个答案:

答案 0 :(得分:0)

您可以使用RGB值表示黑白。 rgb(0,0,0)代表黑色和rgb(255,255,255)以及灰色阴影:rgb(240,240,240),rgb(128,128,128)etc

如果您想将颜色转换为灰度,请参阅此post

答案 1 :(得分:0)

通常在Java中,您使用BufferedImage来表示图像。 BufferedImage包含长度宽度x高度X通道(图像尺寸)的一维数组。要访问像素值,一个非常简单的解决方案是使用Raster:

BufferedImage image = ... // A gray level or binary image
WritableRaster wr = image.getRaster() ;
for (int y=0 ; y < image.getHeight() ; y++)
    for (int x=0 ; x < image.getWidth() ; x++)
        int pixelvalue = wr.setSample(x, y, 0) ;
根据图像编码(image.getType()),

pixelvalue将处于不同的范围内:

  • TYPE_BYTE_BINARY,范围= [0,1],黑色= 0且白色= 1.
  • TYPE_BYTE_GRAY,范围= [0,255],黑色= 0,白色= 255。
  • TYPE_USHORT_GRAY,范围= [0,65535],黑色= 0,白色= 65535。

访问像素的最快方法是使用DataBuffer,但它有点复杂。