Визуализация спутникового изображения RGBN TIFF в Python - PullRequest
0 голосов
/ 05 ноября 2018

Это мой первый вопрос, постараюсь быть максимально ясным.

У меня есть два tiff-файла, один из которых представляет собой 4-полосное спутниковое изображение PlanetScope площадью 20 x 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')

Заранее спасибо за любые предложения.

...