Так уж получилось, что я уже довольно давно интересуюсь фотографией и астрономией.
Я люблю фотографировать звездное небо.
Поскольку света ночью мало, чтобы получить что-то по-настоящему красивое, приходится делать довольно длинные выдержки.
Но тут возникает другая проблема – из-за того, что Земля вращается, звёзды на небе движутся.
Соответственно, при относительно длинных выдержках звезды перестают быть точками и начинают рисовать дуги.
Для компенсации этого движения при фотографировании/наблюдении объектов дальнего космоса существуют устройства – монтируется .
К сожалению, на данный момент нет возможности купить монтировку, поэтому я решил задаться вопросом: можно ли реализовать подобный эффект программно и что из этого получится? Под катом много фотографий.
Все фотографии в посте мои, (почти все) кликабельны и доступны для бесплатного скачивания.
Введение
Проблема с падающими звездами в том, что они движутся.На первый взгляд может показаться, что это движение совершенно незаметно, но даже на относительно коротких выдержках (20”+) звезды перестают быть точками — начинают быть видны короткие дуги, которые они рисуют по мере движения по небу.
.
Выдержка ~15 дюймов
Выдержка ~20'
Теория
Земля вращается вокруг своей оси.Относительно далеких звезд этот период составляет 86164,090530833 секунды .
Соответственно, зная выдержку кадра, можно посчитать, на сколько градусов относительно центра повернулись все звезды в кадре.
Идея в том, что если компенсировать это вращение поворотом всего кадра в противоположную сторону на эту величину, то все звезды должны остаться на своих местах.
Проблема найти центр, вокруг которого все вращается, не является проблемой.
Достаточно найти полярную звезду – ось вращения Земли проходит очень близко к ней.
Полюс мира — это одна и та же ось.
Выполнение
Для реализации этой идеи я решил использовать Эмгу резюме – оболочка библиотеки OpenCV для .NET. Я не буду описывать всю программу – расскажу только об основных методах.
Если я накладываю фотографии одну на другую, в Photoshop я обычно использую Режим наложения: Осветление.
Его суть в том, что он создает одно из двух изображений, выбирая пиксели с наибольшей яркостью.
То есть, если в двух исходных изображениях есть два пикселя, то результирующее изображение будет содержать более яркий пиксель.
Этот метод уже реализован в Emgu CV.
Теги: #emgu резюме #астрономия #C++ #фотография #звезды #C++public Image<TColor, TDepth> Max(
-
Бертон, Ричард Фрэнсис
19 Oct, 24 -
Игра Для Механического Лидера
19 Oct, 24 -
Нелокальный Алгоритм Сглаживания Изображений
19 Oct, 24 -
Программный Синтезатор
19 Oct, 24 -
Конкурент Feedburner Давно Умер
19 Oct, 24