Локальный просмотрщик Python

Программа просмотра гиперспектров является примером ПО для чтения, визуализации и первичного анализа гиперспектральных данных.
Основной репозиторий программы расположен по адресу: https://github.com/copterspace/hspviewer
Для работы программы необходимо наличие на компьютере версии Python 3.7 и выше, а также OpenCV.
Запуск программы из командной строки осуществляется командой python hyperspecter_viewer.py.
Выход из программы осуществляется с помощью клавиши ESC.

Чтение гиперкуба

Диалог чтения гиперспектральных данных открывается при запуске программы. Также возможно прочитать новый куб, нажав клавишу O (латинскую - Open).
Поддерживается чтение гиперкубов в следующих форматах:
  • .npy - внутренний формат модуля numpy Python (по умолчанию)
  • .tiff - многослойный GeoTIFF
  • .jpg, .jpeg, .png, .bmp - RGB изображения, открываются как гиперкуб с 3 слоями

Просмотр гиперкуба

После чтения гиперкуба открывается окно визуализации гиперкуба (Image) и окно настроек (Settings).
Image - окно визуализации гиперкуба
Settings - окно настроек программы
В окне Settings отображаются следующие настройки:
  • layer - номер слоя гиперкуба, отображаемого в окне Image
  • red_edge - номер крайнего слоя видимого спектра. Следующие слои после этого слоя считается, что находятся в инфракрасном спектре, и отображаются как чёрно-белые изображения, без использования цветосинтеза
  • num_points - количество точек для сравнительного анализа спектра. Возможны значения от 1 до 9
Слои гиперкуба можно сохранить в виде отдельных картинок в формате .png, с помощью клавиши W. Вызывается диалог для выбора имени файла. При сохранении к имени файла добавляется номер слоя гиперкуба.

Диаграмма спектра точек гиперкуба

Кликом левой кнопки мыши в окне Image выделяются точки, гистограмма слоёв гиперспектра для которых отображается в окне hist:
hist - гистограмма спектров выделенных точек
Кликом левой кнопки мыши на окне гистограммы можно выбрать слои, по которым осуществляется расчёт Евклидова расстояния точек гиперкуба (см ниже). По умолчанию выбраны все слои. Клик правой кнопки мыши в окне hist - инвертирует выделение.

Сохранение спектров точек в файлы csv

Гистограммы спектров выделенных точек гиперкуба можно сохранить в файлы в формате CSV. Диалог выбора имени файла вызывается клавишей S.

Первичный анализ гиперкуба

В качестве первичного алгоритма анализа гиперкуба используется расчёт Евклидова расстояния (корень из суммы квадратов) для выбранной точки или средней для выбранной прямоугольной области куба.
Точка или область выбирается правой кнопкой мыши а окне Image.
Результат расчёта отображается в окне Distances Map:
Distances Map - карта Евклидовых расстояний спектра
Наиболее похожие на выбранную точку спектры на карте расстояний выделяются более светлым оттенком.
Таким образом можно находить объекты с наиболее похожими спектральными характеристиками.