我是图像处理新手。我试图获取黑白图像的像素值。我在这里搜索过但找不到合适的方法。我看到很多关于RGB值的帖子,但我正在寻找具有特定黑白值的样本,我相信这将是一个M x N x 1阵列。我想知道如何在java中实现这一点。
答案 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将处于不同的范围内:
访问像素的最快方法是使用DataBuffer,但它有点复杂。