Я использовал GDAL API для чтения растровых файлов... Я нашел в некоторых местах, что версия python имеет ReadAsArray, я предполагаю, что это принимает данные растрового файла в виде двумерного массива, есть ли подобная опция для С# или по крайней мере, вы можете показать мне, как это сделать? спасибо большое!
Нет эквивалента функции ReadAsArray, доступной в привязках С# к GDAL. ReadAsArray доступен, поскольку привязки GDAL Python должны использоваться с протоколом массива, определенным NumPy, поэтому эта функция существует для этой конкретной цели.
Однако вы можете использовать метод ReadRaster класса Band для чтения пикселей в 1-мерный массив, а затем итерации по такому массиву с 1-мерным размером, поскольку он был 2-мерным массивом.
Предположим, вы читаете пиксели полосы с размерами width x height
:
byte[] bits = new byte[width * height];
band.ReadRaster(0, 0, width, height, bits, width, height, 0, 0);
Теперь вы можете вычислить индекс пикселя в соответствии с этой формулой: column + row * width
for (int col = 0; col < width; col++)
{
for (int row = 0; row < height; row++)
{
// equivalent to bits[col][row] if bits is 2-dimension array
byte pixel = bits[col + row * width];
}
}