A A A A Автор Тема: MyDerotator - простая программа для деротации кадров  (Прочитано 3415 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AleksandrrrАвтор темы

  • *****
  • Сообщений: 2 595
  • Благодарностей: 978
    • Сообщения от Aleksandrrr
Иногда удобнее и надежнее поворачивать единичные  кадры, а складывать их уже отдельно в том же регистаксе. Кроме того, мне не нравится в WinJUPOS отсутствие возможности в реальном времени видеть результат поворота кадра, что затрудняет контроль наличия или отсутствия краевых артефактов. Есть у меня также некоторое недоверие к преобразованиям, которые WJ применяет к кадрам. По этим причинам для себя я сделал довольно простую утилиту для поворота и сохранения отдельных кадров.

Ограничения и особенности:
1. Нет никакого симулятора, поэтому центральную широту вводить надо руками. Фаза в текущей версии указывается путем задания вектора направления на Солнце.
2. Читает и сохраняет только tiff и bmp.
3. Для запуска требуется .NET 4.0

Пояснения к основным параметрам:

Группа “Начальные параметры” – выбор объекта и начальных значений времени и широты.

Группа “Конечные параметры” – выбор конечных значений времени и широты
Дополнительные параметры этой группы:
Учит. распр. скор. ветра - учет скорости ветра для реализации зависимости скорости вращения от широты (применяется только для Юпитера).
Вращать кольца - пока заблокировано.

Группа “Коррекции” – параметры коррекции яркости и краевых артефактов.
Сол. вектор – индикация текущего вектора направления на Солнце от изображения. Чтобы задать вектор, нужно кликнуть правой кнопкой мыши на области планеты, которая направлена строго на Солнце. Это не очень точный метод, но другого пока не придумал.
Сила корр. яркости – уровень коррекции яркости. Дело в том, что при повороте нужно сохранять закон падения яркости при удалении точки от пика освещенности. Значение этого параметра – умноженная на 10 степень косинусоидального закона падения яркости от пика освещенности планеты к границе диска. Просто косинус использовать нельзя ввиду того, что при съемке или обработке гамма изображения может сильно корректироваться.
Сила корр. лимба – степень слияния краев повернутого кадра с исходным. При больших значениях может падать четкость. Обычно 4-5 достаточно.
При больших поворотах (где-то от 25 градусов) могут вылезать ложные детали, так как программа старается склеить края повернутого изображения с исходным.

Для установки рамки вокруг планеты:
(Сначала дать фокус ввода правой панели с изображением, кликнув на нее)
W,S,A,D - перемещение
Page Up, Page Down - размер
P, N - поворот.
Если зажать Ctrl, то все изменения будут в пятикратном размере.

Процесс обработки простой - открываем файл, ставим рамку и параметры, смотрим результат, корректируем параметры и, наконец, сохраняем.

Один совет: при установке желательно делать, чтобы тот край планеты, "куда" она поворачивается, полностью охватывался рамкой, а с противоположной стороны можно, наоборот, на 1-2 пикселя залезть рамкой на планету. Так проще исключить краевые артефакты без сильной коррекции. Впрочем, все зависит от изображения.

В папке вместе с запускаемым .exe файлом находится .dll с реализацией библиотеки чтения/записи tiff-ов. Этот файл должен лежать в одном каталоге с .exe файлом, иначе приложение не запустится
« Последнее редактирование: 23 Янв 2016 [23:53:43] от Aleksandrrr »


Оффлайн AleksandrrrАвтор темы

  • *****
  • Сообщений: 2 595
  • Благодарностей: 978
    • Сообщения от Aleksandrrr
Re: Утилита для деротации кадров
« Ответ #1 : 14 Сен 2014 [23:11:18] »
Оперативно исправил пару проблем совместимости. Архив в первом посте перезалил.

Оффлайн 1212Lupus

  • *****
  • Сообщений: 3 094
  • Благодарностей: 196
  • Мне стал не очень нравиться этот форум...
    • Сообщения от 1212Lupus
    • http://belastro.net
Re: Утилита для деротации кадров
« Ответ #2 : 15 Сен 2014 [23:54:44] »
А просветите, пожалуйста, зачем вообще нужно поворачивать кадры? :)
Радиоастрономы-любители -- объединяемся!


Если утро наступает в три -
Через два часа уже зажгут фонари.
Уже кончился день, а я только встал,
А я только что встал и уже устал.
(с) НОЛЬ

Оффлайн Виниту

  • *****
  • Сообщений: 1 819
  • Благодарностей: 1198
  • Орешек знаний тверд, но все же!
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Виниту
Re: Утилита для деротации кадров
« Ответ #3 : 16 Сен 2014 [00:23:55] »
Спасибо, очень нужная утилита! Надо будет опробовать. В Винжупосе действительно не хватает функции поворота единичного кадра к произвольному времени. И непонятно как он учитывет снижение яркости к краям.

Вы не пробовали это применить к Вашему Урану с поясом? Вдруг там не просто пояс, а пятно?

А просветите, пожалуйста, зачем вообще нужно поворачивать кадры? :)
Точнее, поворачивается не кадр, а планета. Чтобы складывать как можно большее число кадров при том, что планета вращается.

Оффлайн AleksandrrrАвтор темы

  • *****
  • Сообщений: 2 595
  • Благодарностей: 978
    • Сообщения от Aleksandrrr
Re: Утилита для деротации кадров
« Ответ #4 : 16 Сен 2014 [00:33:12] »
Да нет, к Урану бесполезно. У меня просто нет нескольких стеков с похожими "точечными" деталями и близким временем.

Оффлайн Виниту

  • *****
  • Сообщений: 1 819
  • Благодарностей: 1198
  • Орешек знаний тверд, но все же!
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Виниту
Re: Утилита для деротации кадров
« Ответ #5 : 17 Сен 2014 [23:00:55] »
У меня к сожалению окно программы не вмещается полностью на экран ноута, поэтому не могу нажать кнопочку на запуск расчета

Оффлайн AleksandrrrАвтор темы

  • *****
  • Сообщений: 2 595
  • Благодарностей: 978
    • Сообщения от Aleksandrrr
Re: Утилита для деротации кадров
« Ответ #6 : 17 Сен 2014 [23:52:49] »
У меня к сожалению окно программы не вмещается полностью на экран ноута, поэтому не могу нажать кнопочку на запуск расчета
Перекомпоновывать элементы управления под маленький экран не хотелось бы, но я сделал, чтобы по нажатию Enter вызывался диалог сохранения. Это должно помочь.

Помимо этого:
1. Исправлена ошибка, из-за которой период вращения планет получался в 2 раза длиннее реального.
2. Для Юпитера введена коррекция периода вращения в зависимости от широты в соответствии с графиком ниже (применяется автоматически). Но это пока экспериментальная функция, так как график скорости ветра не полностью соответствует движению деталей, так что распределение скоростей нужно сверять с реальной анимацией движения поясов. В любом случае при малых поворотах это заметного эффекта на результат не окажет (для любительских снимков). По-видимому, такая коррекция может иметь значение только для случаев сложения снимков, снятых в разные дни.
« Последнее редактирование: 18 Сен 2014 [00:10:28] от Aleksandrrr »

Оффлайн AleksandrrrАвтор темы

  • *****
  • Сообщений: 2 595
  • Благодарностей: 978
    • Сообщения от Aleksandrrr
Re: Утилита для деротации кадров
« Ответ #7 : 30 Окт 2014 [21:09:38] »
Добавил поддержку цветных изображений.

Оффлайн AleksandrrrАвтор темы

  • *****
  • Сообщений: 2 595
  • Благодарностей: 978
    • Сообщения от Aleksandrrr
Re: Утилита для деротации кадров
« Ответ #8 : 07 Дек 2014 [21:36:55] »
Пара мелких изменений:
1. Для установки центральной широты ввел обычное текстовое поле. Это позволит ввести любое значение (раньше нельзя быть ввести значение между -1 и 0 градусами).
2. Можно отменить учет разности скоростей вращения по широте для Юпитера (снять флаг Use Wind speed distribution). Я пока не понял, в каком случае получается точнее, но в любом случае разница проявляется только при сведении кадров с разностью в полтора-два часа и более.

Оффлайн Pafnutiy

  • *****
  • Сообщений: 3 422
  • Благодарностей: 220
    • Сообщения от Pafnutiy
    • http://www.astrobin.com/users/Pafnutiy/
Re: Утилита для деротации кадров
« Ответ #9 : 09 Дек 2014 [23:11:58] »
Александр, ради любопытства, а на чем программа написана? ::)

Оффлайн AleksandrrrАвтор темы

  • *****
  • Сообщений: 2 595
  • Благодарностей: 978
    • Сообщения от Aleksandrrr
Re: Утилита для деротации кадров
« Ответ #10 : 09 Дек 2014 [23:13:39] »
С#

Оффлайн AleksandrrrАвтор темы

  • *****
  • Сообщений: 2 595
  • Благодарностей: 978
    • Сообщения от Aleksandrrr
28.04.2015
Вроде доделал алгоритм деротации для Сатурна.
Интерфейс сделал русским.

Оффлайн AleksandrrrАвтор темы

  • *****
  • Сообщений: 2 595
  • Благодарностей: 978
    • Сообщения от Aleksandrrr
Исправил пару ошибок.
Самая серьезная - некорректная трактовка вводимого значения центральной широты (в эфемеридах обычно дается планетографическая широта, а я вводимое значение считал планетоцентрическим. Из-за этого значение CLat, взятое в WinJUPOS, давало ошибочный наклон планеты относительно наблюдателя).

Оффлайн Pafnutiy

  • *****
  • Сообщений: 3 422
  • Благодарностей: 220
    • Сообщения от Pafnutiy
    • http://www.astrobin.com/users/Pafnutiy/
Скачал, разархивировал, а он не запускается. ???
Стоит .NET 4.5

Оффлайн xd

  • *****
  • Сообщений: 17 982
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
А запускали как? Может не обратили внимание, что рядом с .exe-файлом лежит ещё одна .dll-ка? Для запуска требуется версия .NET Framework 4.0, никаких экзотических зависимостей нету.

PS: На моём ноуте окно не помещается по высоте на экране.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн AleksandrrrАвтор темы

  • *****
  • Сообщений: 2 595
  • Благодарностей: 978
    • Сообщения от Aleksandrrr
Может не обратили внимание, что рядом с .exe-файлом лежит ещё одна .dll-ка?
Да, это обязательная вещь, удалять нельзя. Лежать должна в той же папке, где и .exe


На всякий случай выскажу (может быть банальный) совет по поводу деротации как таковой (не важно в какой программе): лучше вращать кадры, предварительно увеличенные в 2 или более раз относительно исходного размера. Это позволит минимизировать ошибки и артефакты, связанные с неправильной ориентацией контура и интерполяцией пикселей.
« Последнее редактирование: 24 Янв 2016 [00:00:25] от Aleksandrrr »

Оффлайн xd

  • *****
  • Сообщений: 17 982
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
А можно немножко вопросиков технического плана? :)
Я бегло проглядел содержимое сборки прогой JetBrains dotPeek, и (если я ничего не пропустил) обнаружил, что Вы используете .NET Framework 4.0 исключительно чтобы в двух местах использовать Parallel.For. Вы тестировали выигрыш производительности на разных машинах? Может быть оно просто того не стоило?

На своём опыте: 4-ядерный AMD A8-4500M в ноутбуке даёт выигрыш максимум в полтора раза, 8-ядерный Core i7 на работе - почти 2 раза. Если времена обработки не слишком велики, может имеет смысл понизить требования по версии .NET Framework до необходимого минимума (вместе с Win7 идёт 3.5) ценой не слишком существенного снижения быстродействия? Судя по коду, это не слишком критичная к производительности операция.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн Pafnutiy

  • *****
  • Сообщений: 3 422
  • Благодарностей: 220
    • Сообщения от Pafnutiy
    • http://www.astrobin.com/users/Pafnutiy/
А запускали как? Может не обратили внимание, что рядом с .exe-файлом лежит ещё одна .dll-ка? Для запуска требуется версия .NET Framework 4.0, никаких экзотических зависимостей нету.

PS: На моём ноуте окно не помещается по высоте на экране.
У меня дотнет фрэймвок 4.5
Файлы в папке не трогались, я прекрасно знаю для чего там дллка лежит. ;)
При запуске начинает запускаться программа, но окно программы не появляется, при этом в диспечере программ видно, что exeшник стал исполняемым.

Оффлайн AleksandrrrАвтор темы

  • *****
  • Сообщений: 2 595
  • Благодарностей: 978
    • Сообщения от Aleksandrrr
Может быть оно просто того не стоило?
Сейчас сложно сказать. Большие картинки заметно быстрее поворачивались, насколько я помню. Будет время - попробую убрать. Хотя 2016 год на дворе - специально убирать код, чтобы 3.5 поддерживать - как-то странно.

При запуске начинает запускаться программа, но окно программы не появляется, при этом в диспечере программ видно, что exeшник стал исполняемым.
Честно говоря, не могу пока сказать, в чём может быть проблема  :(