Съемка Звездного Неба С Помощью Emgu Cv



Съемка звездного неба с помощью Emgu CV

Добрый день, Хабр.

Так уж получилось, что я уже довольно давно интересуюсь фотографией и астрономией.

Я люблю фотографировать звездное небо.

Поскольку света ночью мало, чтобы получить что-то по-настоящему красивое, приходится делать довольно длинные выдержки.

Но тут возникает другая проблема – из-за того, что Земля вращается, звёзды на небе движутся.

Соответственно, при относительно длинных выдержках звезды перестают быть точками и начинают рисовать дуги.

Для компенсации этого движения при фотографировании/наблюдении объектов дальнего космоса существуют устройства – монтируется .

К сожалению, на данный момент нет возможности купить монтировку, поэтому я решил задаться вопросом: можно ли реализовать подобный эффект программно и что из этого получится? Под катом много фотографий.

Все фотографии в посте мои, (почти все) кликабельны и доступны для бесплатного скачивания.



Введение

Проблема с падающими звездами в том, что они движутся.

На первый взгляд может показаться, что это движение совершенно незаметно, но даже на относительно коротких выдержках (20”+) звезды перестают быть точками — начинают быть видны короткие дуги, которые они рисуют по мере движения по небу.

.



Съемка звездного неба с помощью Emgu CV

Выдержка ~15 дюймов

Съемка звездного неба с помощью Emgu CV

Выдержка ~20'

Теория

Земля вращается вокруг своей оси.

Относительно далеких звезд этот период составляет 86164,090530833 секунды .

Соответственно, зная выдержку кадра, можно посчитать, на сколько градусов относительно центра повернулись все звезды в кадре.

Идея в том, что если компенсировать это вращение поворотом всего кадра в противоположную сторону на эту величину, то все звезды должны остаться на своих местах.

Проблема найти центр, вокруг которого все вращается, не является проблемой.

Достаточно найти полярную звезду – ось вращения Земли проходит очень близко к ней.



Съемка звездного неба с помощью Emgu CV

Полюс мира — это одна и та же ось.



Выполнение

Для реализации этой идеи я решил использовать Эмгу резюме – оболочка библиотеки OpenCV для .

NET. Я не буду описывать всю программу – расскажу только об основных методах.

Если я накладываю фотографии одну на другую, в Photoshop я обычно использую Режим наложения: Осветление.

Его суть в том, что он создает одно из двух изображений, выбирая пиксели с наибольшей яркостью.

То есть, если в двух исходных изображениях есть два пикселя, то результирующее изображение будет содержать более яркий пиксель.

Этот метод уже реализован в Emgu CV.

   

public Image<TColor, TDepth> Max(

Теги: #emgu резюме #астрономия #C++ #фотография #звезды #C++
Вместе с данным постом часто просматривают: