как я могу перебирать пиксели изображения за пикселями, прочитанными rasterio?
img = rasterio.open("FalseColorImages.jpg", masked=True)
profile = img.profile
я пробовал это, но это привело меня к ошибке
for i in np.nditer(img.shape[0]):
for j in np.nditer(img.shape[1]):
print(img[i][j])
и я тоже пробую
for i in range(img.shape[0]):
for j in range(img.shape[1]):
print(img[i][j])
и я тоже пробую
for i in range(img.shape[0]):
for j in range(img.shape[1]):
print(list(img[i][j]))






Что вы сделали, так это просто открыли изображение с помощью rasterio. Теперь вам нужно прочитать это изображение, используя
img.read(channel_number_to_read)
таким образом, у вас будет матрица, представляющая канал изображения. Таким образом, вы можете перебрать его.
Примечание: изображение может иметь разные каналы. Вы можете проверить, сколько у него каналов, посмотрев количество в выводе кода ниже:
image.profile
Да. Пример, который вы написали, правильный. Обратите внимание на диапазоны/каналы, которые вы хотите использовать, например, если ваше изображение исходит от Sentinel2 или Landsat, то каналы 2, 3 и 4 относятся к синему, зеленому и красному соответственно.
так что я буду конкатенировать красный + зеленый + синий канал, чтобы получить исходное изображение и повторить его? @GabrielTrindade
Вы можете прочитать все три сразу, передав список .read: img.read([red_band, green_band, blue_band])
Можете ли вы привести пример, чтобы лучше понять img.read(channel_number_to_read) Возможно ли быть таким img.read(3)?