Друзья,
У нас сегодня есть сразу два повода погрузиться в глубины космоса. Во-первых, начинается главный летний звездопад – персеиды. Каждую минуту, при ясном небе, вероятность исполнения желаний будет достигать 10% ✨
А вот и вторая причина! Начинается наш цикл постов про астро-ориентацию и звездные датчики. В космосе, на летательном аппарате или на земле, алгоритм ориентации всегда можно собрать из однотипных компонентов. Давайте спроектируем такой? Что нужно сделать?
Во-первых нужно отфильтровать изображение. Это мы сделаем в первом примере, который находится 👉 здесь. Если рассуждать по порядку, то мы сперва загрузим в Engee какой-нибудь снимок и создадим скрипт, а потом:
☄️ Научимся исключать отдельные области снимка, например те, где наиболее вероятна засветка. Научимся задавать интересующую область через массив CartesianIndices.
☄️ Построим гистограмму изображения (вид графика histogram) и убедимся что изображение достаточно контрастно (и вообще в том, что в кадре есть звезды). Подправим контраст при помощи
adjust_histogram.☄️Выберем алгоритм бинаризации из библиотеки ImageBinarization, например MinimumError(). Есть множество отличных локальных и глобальных алгоритмов, которые по-разному реагируют на шум.
☄️Полученное черно-белое изображение легко сегментировать на объекты (
label_components()) и взять координаты их центроидов (component_centroids()).☄️Наконец, немного простейшей геометрической оптики – рассчитаем трехмерные координаты звезд относительно камеры.
В одном интерактивном скрипте мы пройдем путь от гипотезы до реализации, примем проектные решения и создадим высокоуровневую модель алгоритма фильтрации изображения.
👆 Кстати! Весь ближайший месяц, в созвездии Персея будут сразу и Марс, и Юпитер, очень заметные на ночном небе. Единственная возможная интерпретация этого явления – приближается летняя школа Julia, которая пройдет в конце августа, и мы рады сообщить, что стали ее информационным партнером! 😎
Желаем вам интересного чтения и ждем вас в Engee! 💼


