我必须编写一种方法:
我该怎么办?我写了一些代码,但陷入僵局。
public histogram(BufferedImage image){
WritableRaster writableRaster = image.getRaster();
int width = image.getWidth();
int height = image.getHeight();
int pixelValue;
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
pixelValue = writableRaster.setDataElements(x, y, width, height, );
}
}
}
答案 0 :(得分:0)
以下代码段应有帮助:
Raster raster = image.getRaster();
int numBands = raster.getSampleModel().getNumBands();
int width = image.getWidth();
int height = image.getHeight();
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
int[] pixelValue = new int[numBands];
raster.getPixel(x, y, pixelValue);
}
}
如果您确实有没有alpha的灰度图像,则SampleModel将仅包含一个带。在这种情况下,pixelValue数组将包含您想要的int值。您只需要添加一个256个int值的直方图数组,并在像素值的索引处增加该值即可。