Визуализация спутникового изображения RGBN TIFF в Python
Это мой первый вопрос здесь, я постараюсь быть максимально ясным.
У меня есть два файла формата TIFF, один из которых представляет собой 4-полосное спутниковое изображение PlanetScope площадью 20 х 20 км и размером 2,93 м в пикселях. Второй файл TIFF представляет собой однополосное изображение Top10road, содержащее метки от 0 до 9 для типа дороги, к которой принадлежит пиксель, причем 0 - это недорожная дорога.
Файлы можно скачать по следующей ссылке: https://www49.zippyshare.com/v/5pR3GPv3/file.html
Изображение RGBN имеет 5 полос формы (6496, 6723) и типа uint16. Пятая полоса содержит только одно значение, из которого я не уверен, что это влечет за собой.
Моя цель - запустить CNN и U-net для извлечения дорог из спутниковых изображений с помощью семантической сегментации и сравнения результатов. (Это всего лишь примерный набор, окончательный набор будет 140 на 140 км, однако я немного тестирую этот небольшой набор)
У меня проблемы с просмотром изображения RGBN. Я попробовал tifffile, PIL и, в конечном итоге, импортировать каждую полосу в виде массива, а затем визуализировать их с помощью pyplot. Последнее привело к созданию изображения отдельно для каждой полосы, однако я не могу сложить все полосы и просмотреть изображение RGBN.
Следующий код является упрощенной версией того, что я пробовал:
from matplotlib import pyplot as plt
import numpy
import rasterio
with rasterio.open('ede_subset_293_20180502_planetscope.tif') as src:
r, g, b, n, x = src.read()
#works
plt.imshow(r, interpolation='nearest')
plt.show()
#does not work :(
rgbn = np.dstack((r,g,b,n))
plt.imshow(rgbn, interpolation='nearest')
rgb = np.dstack((r,g,b,n))
plt.imshow(rgb, interpolation='nearest')
Заранее спасибо за любые предложения.