0
我用下面的方法讀取2048×2048像素的TIFF文件:閱讀TIFF柵格數據
private static int[][] convertTo2DWithoutUsingGetRGB(BufferedImage image) {
final short[] pixels = ((DataBufferUShort) image.getRaster().getDataBuffer()).getData();
int[][] data = new int[2048][2048];
int col = 0;
int row = 0;
int blockSize = 2048;
for (int i=0; i<pixels.length; i++) {
data[col][row] = pixels[i];
row++;
if (row == blockSize) {
col++;
row = 0;
}
}
return data;
}
但是我把我的陣列上得到負值,如果我使用GDAL與蟒蛇,例如:
import gdal # Tiff Image Read
def getArrayFromImage(fileName):
img = gdal.Open(fileName)
return img.ReadAsArray().astype(int)
我只得到正值。在上面的java方法中,是否需要將原始值作爲tiff圖像的有效像素進行處理?