Телескопы покупают здесь


A A A A Автор Тема: Круглые звёзды для ленивых и бедных  (Прочитано 3225 раз)

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

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

  • *****
  • Сообщений: 2 594
  • Благодарностей: 966
    • Сообщения от Aleksandrrr
Как, наверное, известно каждому дипскайщику, возня с подбором корректоров, долгой настройкой гидирования, выставлением плоскости сенсора и т.п. вещами в значительной степени связана с необходимостью получить на изображении «круглые» звёзды по всему полю. Даже траты на дорогую трубу зачастую обусловлены этим. Само собой, разрешение туманностей и прочего тоже страдает из-за недостатков в оборудовании, но мелкие проблемы с протяженными объектами проще решаются обработкой и меньше бросаются в глаза на готовом изображении. Я решил в связи с этим сделать простую программку для «исправления» звезд. Не знаю, может быть я изобрёл велосипед, но в любом случае было желание самому это реализовать для своих нужд.

Принцип работы прямо таки примитивен:
1. Отделяем звезды от фона. Одновременно создаем массив описаний звезд с рассчитанными для каждой звезды общей светимостью и координатами центра.
2. Генерируем заново и добавляем на фон изображение каждой звезды, используя заданную функцию распределения яркости и определённое ранее значение общей светимости.
Картинку с примером применения приложил (оптимально параметры не подбирал, так что это вряд ли лучший пример).

Краткая инструкция
1. Открыть файл с изображением. Поддерживаются форматы .bmp, .png, .jpg, .tiff (8 и 16 бит на канал).
2. Установить параметры детектирования звёзд:
•   радиус медианного фильтра для получения приблизительного изображения фона;
•   порог (медиана + порог = минимальное значение пикселя, которое определяется как звезда);
•   минимальное и максимальное количество пикселей на звезду. Все «звезды», содержащие меньше минимального или больше максимально количества пикселей, не будут детектированы.
3. Выполнить детектирование (кнопка “Detect”). Если хотя бы одна звезда найдена, активируется область параметров реконструкции звёзд. Все пиксели, относящиеся к изображениям звёзд, заливаются красным цветом.
3a. На этом этапе кликом мыши на конкретных «красных» областях пользователь может удалить из списка детектированных соответствующие участки изображения. Это полезно в случаях, когда части туманности ошибочно определены как звёзды.
4. Установить параметры реконструкции:
•   требуемый FWHM функции распределения (используется распределение Moffat);
•   Параметр “beta”. Чем меньше это значение, тем больше энергии распределяется в периферийной части «колокола» функции распределения. В принципе, можно для любых нужд ставить от 3.5 до 5;
•   Коэффициент усиления/ослабления яркости всех звезд изображения;
•   Сила дополнительного гауссова размытия для пережжённых звезд (в долях от радиуса выгоревшего центра).
5. Выполнить реконструкцию (кнопка “Rebuild stars”).
Также тут есть кнопка удаления звезд и получения фона (“Remove stars from image”). Но функция удаления сама по себе вне контекста перерисовки звёзд вряд ли может представлять интерес, так как реализация на основе медианного фильтра слишком проста и результат не очень реалистичен.
Все параметры можно менять многократно в процессе работы.
В любой момент пользователь может зажать клавишу Esc и просмотреть оригинальное изображение.

Рекомендации
Вероятно, гораздо проще получить хорошие результаты, если работать непосредственно со звездным полем, отделенным от фона в какой-то более серьезной программе типа Photoshop или PixInsight. Тогда всё пойдёт совсем как по маслу.

----------------------------------------------------------------
Исходники выложил в открытый репозиторий:
https://github.com/aleksandrrr-ob/StarTweaks

Требования для компиляции:
Qt 5.14 или более поздняя версия. Рекомендую собирать в Qt Creator.

----------------------------------------------------------------
Ссылка на готовые бинарники под Win 64:
https://drive.google.com/file/d/1OB-dg4m1oj2tuNaJAr8-EMnVv7Ux0OeK/view?usp=sharing

Запускать файл StarTweaks.exe. Если вдруг не завелось, попробуйте установить vcredist_msvc2017_x64.exe (я в архиве приложил).

P.S. Были планы добавить пару полезных функций типа выравнивания RGB каналов для каждой звезды в отдельности, но руки до этого вряд ли в ближайшее время дойдут.
Если кто захочет с кодом и самой программой поиграться – на здоровье. К возможным просьбам и критике открыт, но пока код дорабатывать вряд ли сам стану. Времени не очень хватает.
« Последнее редактирование: 07 Фев 2020 [10:28:56] от Aleksandrrr »


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

  • *****
  • Сообщений: 2 594
  • Благодарностей: 966
    • Сообщения от Aleksandrrr
Re: Круглые звёзды для ленивых и бедных
« Ответ #1 : 07 Фев 2020 [10:25:56] »
Само собой, чудес не бывает и в сложных случаях дело так просто не пойдет (пример - очень плотные звездные поля, где звезды сливаются).
Ну и, само собой, для фоток с Ньютонов далеко не всегда программка применима ввиду наличия лучей от растяжек. То же касается объективов с зажатой диафрагмой.

Оффлайн Дмитрий Маколкин

  • *****
  • Сообщений: 14 932
  • Благодарностей: 1311
  • всяко разно
    • Skype - dmitrymakolkin
    • DeepSkyHosting: dvmak
  • Награды Призер конкурса астрофото
    • Сообщения от Дмитрий Маколкин
    • Панорамы Луны
Re: Круглые звёзды для ленивых и бедных
« Ответ #2 : 07 Фев 2020 [12:46:16] »
Очень интересно, спасибо за программу. Буду пробовать обязательно.

P.S. Были планы добавить пару полезных функций типа выравнивания RGB каналов для каждой звезды в отдельности, но руки до этого вряд ли в ближайшее время дойдут.

А вот это жаль, с моим сетапом это было бы очень востребовано.
Панорамы Луны в моей галерее:
http://www.makolkin.ru/Gallery/gallery.html
Мои дипы: https://deepskyhosting.com/dvmak

Оффлайн tomato

  • Обозреватель
  • *****
  • Сообщений: 10 106
  • Благодарностей: 387
  • Каменный век- дикие вещи!
  • Награды Призер конкурса астрофото
    • Сообщения от tomato
    • www.chilescope.com
Re: Круглые звёзды для ленивых и бедных
« Ответ #3 : 07 Фев 2020 [12:48:29] »
Я правильно понимаю, звезды трансформируются, а протяженные объекты остаются растянутыми?

Оффлайн Reactor

  • *****
  • Сообщений: 1 551
  • Благодарностей: 751
  • Константин
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Reactor
Re: Круглые звёзды для ленивых и бедных
« Ответ #4 : 07 Фев 2020 [12:54:00] »
Я решил в связи с этим сделать простую программку для «исправления» звезд.
Идея всплывала много раз уже. И все как всегда упирается в вопрос: где грань приемлемого вмешательства в фотографию?
Тут уже рукой подать до рисования звезд кистью вручную, или импорта звездного поля из планетария, например. Причем тут астрофото тогда?
Так я и знал наперед, Что они красивы, эти грибы, убивающие людей. Исса.

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

  • *****
  • Сообщений: 2 594
  • Благодарностей: 966
    • Сообщения от Aleksandrrr
Re: Круглые звёзды для ленивых и бедных
« Ответ #5 : 07 Фев 2020 [14:53:12] »
А вот это жаль, с моим сетапом это было бы очень востребовано.
А может и сделаю. Тогда здесь дам знать.

Я правильно понимаю, звезды трансформируются, а протяженные объекты остаются растянутыми?
Трансформируются пикселы, которые определены как относящиеся к звездам (они красным подсвечиваются после поиска).
Для любой замкнутой области, помеченной как звезда, будут суммированы превышения значений пикселей над порогом и вся эта энергия потом будет обратно шлёпнута в виде капли с заданными параметрами.
Как следствие - если один "красный" регион захватил несколько звезд, они будут слиты в одну. Так что за разделением звезд надо следить. Как и за тем, чтобы протяженные объекты не определялись как звезда.
Поэтому и нужно аккуратно подбирать параметры детектирования и потом ещё мышью, возможно, убирать паразитные "звёзды", которые на самом деле звездами не являются.
Не зря я сказал, что проще будет работать по уже отделенному в фотошопе или где-то ещё звездному полю. Когда фрагментов туманности нет и звезды хорошо разделены, проблем вообще не будет.
Ещё можно высказать соображение, что проблема ровности поля касается чаще углов. Следовательно, можно забить на центр, подобрать параметры для углов, где протяж. объектов нет, а потом наложить результат после трансформации на оригинал, маскируя центр. В-общем, вариантов обойти пролемы есть много.

где грань приемлемого вмешательства в фотографию?
Это философский вопрос и его долгое обсуждение не будет продуктивным, потому что кто захочет - будет использовать те или иные инструменты вне зависимости от чужого мнения.
В данном методе из "сторонней" информации используется только пара параметров PSF, остальное берется из изображения. Поэтому я не вижу причин отождествять это с рисованием или наложением готового. Но спорить не буду. У каждого своё мнение.
« Последнее редактирование: 07 Фев 2020 [17:41:16] от Aleksandrrr »

Оффлайн Reactor

  • *****
  • Сообщений: 1 551
  • Благодарностей: 751
  • Константин
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Reactor
Re: Круглые звёзды для ленивых и бедных
« Ответ #6 : 07 Фев 2020 [16:08:31] »
Поправьте вторую цитату в своём посте. Я не говорил того, что указано в ссылке.
Так я и знал наперед, Что они красивы, эти грибы, убивающие людей. Исса.

Оффлайн p.v.

  • *****
  • Сообщений: 7 518
  • Благодарностей: 233
    • DeepSkyHosting: id175
    • Сообщения от p.v.
    • Умный дом в деревне
Re: Круглые звёзды для ленивых и бедных
« Ответ #7 : 08 Фев 2020 [11:14:48] »
Идея не нова, но имеет право быть, хоть и бесполезна по сути. Кому нужна маска звезд, в PGMania она генерируется в один клик в прозрачном PNG.
« Последнее редактирование: 08 Фев 2020 [11:20:39] от p.v. »
(кликните для показа/скрытия)

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

  • *****
  • Сообщений: 2 594
  • Благодарностей: 966
    • Сообщения от Aleksandrrr
Re: Круглые звёзды для ленивых и бедных
« Ответ #8 : 08 Фев 2020 [11:24:42] »
Идея не нова, но имеет право быть, хоть и бесполезна по сути. Кому нужна маска звезд, в PGMania она генерируется в один клик в прозрачном PNG.
Ё-моё, причём здесь маска звёзд? Вы хоть название темы читали? Или кровь из носу надо придумать повод, чтобы втиснуть куда угодно упоминание своего софта?

Оффлайн p.v.

  • *****
  • Сообщений: 7 518
  • Благодарностей: 233
    • DeepSkyHosting: id175
    • Сообщения от p.v.
    • Умный дом в деревне
Re: Круглые звёзды для ленивых и бедных
« Ответ #9 : 08 Фев 2020 [11:31:09] »
Да, ничего не меняется со временем, гениальный вы наш. Успехов в рисовании.
(кликните для показа/скрытия)

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

  • *****
  • Сообщений: 2 594
  • Благодарностей: 966
    • Сообщения от Aleksandrrr
Re: Круглые звёзды для ленивых и бедных
« Ответ #10 : 08 Фев 2020 [11:40:28] »
Да, ничего не меняется со временем.
Я тоже это заметил. Спасибо за внимание!

Оффлайн p.v.

  • *****
  • Сообщений: 7 518
  • Благодарностей: 233
    • DeepSkyHosting: id175
    • Сообщения от p.v.
    • Умный дом в деревне
Re: Круглые звёзды для ленивых и бедных
« Ответ #11 : 08 Фев 2020 [12:15:35] »
Всегда приятно поговорить с умным человеком. Взаимопонимание - это наше все.
Так вот вопрос по маскам. Вы пишете, причем здесь маска, а сами делаете маску
"Принцип работы прямо таки примитивен:
1. Отделяем звезды от фона. Одновременно создаем массив описаний звезд с рассчитанными для каждой звезды общей светимостью и координатами центра.
2. Генерируем заново и добавляем на фон изображение каждой звезды, используя заданную функцию распределения яркости и определённое ранее значение общей светимости."

Абстрагируемся от любезностей и кто автор какого софта и поговорим о деле теме. Вдруг я украду какую-нить оригинальную идею и засуну ее в СВОЙ(это ужасно) или в чужой (это хорошо) :D софт? ;D
Так  в чем разница подхода? Отделить фон от звезд, обрезать у звезд лишнее и сделать картинку красиво. Нет?
Объясню преимущества подхода с отдельно генерируемой маской. Она универсальна. Ее можно использовать как для коррекции картинки (фотошоп в помощь), так и для "научных" целей. Вот в своем софте я ее использую исключительно в корыстных целях.
« Последнее редактирование: 08 Фев 2020 [12:36:28] от p.v. »
(кликните для показа/скрытия)

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

  • *****
  • Сообщений: 2 594
  • Благодарностей: 966
    • Сообщения от Aleksandrrr
Re: Круглые звёзды для ленивых и бедных
« Ответ #12 : 08 Фев 2020 [12:48:17] »
Вы пишете, причем здесь маска, а сами делаете маску
Это да, маска пикселей, значения которых нужно собрать с изображения, а потом по-новому положить обратно. Здесь самое главное -
геометрия участков маски никак не задается заранее, а определяется локальным характером изображения (превышением значений над медианой).
А вот создание маски идеальных кругов вокруг центроидов с пропорциональными яркости радиусами (как я примерно понял из картинки) это как бы другое.
Здесь речь идет о генерации вспомогательной идеализированной маски для каких-то иных целей.
На мой взгляд, такое упоминание этой функции вкупе с мнением о том, что "вот это вот всё - бесполезная по сути фигня", не было уместным, ну да ладно.
С ходу не вижу путей удобного использования таких участков с императивно заданной геометрией (т.е. кругов) в деле генерации звёзд. Потому что значения на исходнике размазаны по "кривому" участку и просто ограничение радиуса поиска тут не способствует отделению "нужных пикселей" от "ненужных". Если же саму маску такого рода использовать именно как готовые "звезды" - то это будет уже явным рисованием без кавычек.
Если Вам кажется, что генерация маски кругов тоже может помочь для целей обработки / правки, я только за. Но сам не вижу, как. Это нечто полезное, но для чего-то другого.

Оффлайн Igor Berezentsev

  • *****
  • Сообщений: 917
  • Благодарностей: 95
  • Производитель опилок
    • Сообщения от Igor Berezentsev
Re: Круглые звёзды для ленивых и бедных
« Ответ #13 : 08 Фев 2020 [17:15:53] »
Есть пагин для фотошопа Star Rounder.8bf. Насколько я помню, он годится только для звёзд, смазанных в одном направлении.
ЗМ-5А, МАК-70, Sky-Watcher 705, DeepSky 70400, DeepSky F70070, DeepSky ED70/420, DeepSky DT700X90, Veber 50/360, Sturman F40070AZ, Sturman F30070M, Kenko 400mm F6.7 ED

Оффлайн Forte

  • *****
  • Сообщений: 3 481
  • Благодарностей: 1067
  • ••••• Святослав ••••• “Auriga” Observatory
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Forte
    • Astrobin
Re: Круглые звёзды для ленивых и бедных
« Ответ #14 : 08 Фев 2020 [18:13:30] »
Есть пагин для фотошопа Star Rounder.8bf. Насколько я помню, он годится только для звёзд, смазанных в одном направлении.
Я его не нашел, он старый что ли? В любом случае можно разбить на сектора фотографию и выравнивать секторами.
https://www.astrobin.com/users/Forte/
Телеграм-канал обсерватории:
https://t.me/auriga_observatory
(кликните для показа/скрытия)

Оффлайн Reactor

  • *****
  • Сообщений: 1 551
  • Благодарностей: 751
  • Константин
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Reactor
Re: Круглые звёзды для ленивых и бедных
« Ответ #15 : 08 Фев 2020 [19:09:23] »
Я его не нашел, он старый что ли?
И не ищи. Он работает по принципу смещения копии слоя с режимом наложения "Darken".
Так я и знал наперед, Что они красивы, эти грибы, убивающие людей. Исса.

Оффлайн p.v.

  • *****
  • Сообщений: 7 518
  • Благодарностей: 233
    • DeepSkyHosting: id175
    • Сообщения от p.v.
    • Умный дом в деревне
Re: Круглые звёзды для ленивых и бедных
« Ответ #16 : 09 Фев 2020 [14:33:10] »
Если Вам кажется, что генерация маски кругов тоже может помочь для целей обработки / правки, я только за. Но сам не вижу, как.
Про использование маски ответил в соответствующей ветке, чтобы не сочли за рекламу https://astronomy.ru/forum/index.php/topic,122589.msg4959493.html#msg4959493 Картинки выше можно снести, как не относящиеся к делу.
Ваша технология по эффекту похожа на деконволюцию с psf, растянутой по кривой. Но фон она не затрагивает, как я понял, а именно фон после вытягивания на сумме и задает всю картинку, т.к. звезды приходится приглушать от распухания. Ничего не имею против новых алгоритмов, скорее даже "за" их появление, вопрос только в их эффективности. Все начинается с малого. Потянутые системно снимки я просто выкидываю, т.к. от них на сумме один вред. В любом случае, качественные исходники имеют первостепенную ценность. Если их нет, то ..
« Последнее редактирование: 09 Фев 2020 [16:39:28] от p.v. »
(кликните для показа/скрытия)

Оффлайн Igor Berezentsev

  • *****
  • Сообщений: 917
  • Благодарностей: 95
  • Производитель опилок
    • Сообщения от Igor Berezentsev
Re: Круглые звёзды для ленивых и бедных
« Ответ #17 : 09 Фев 2020 [14:39:42] »
Я его не нашел, он старый что ли?
Могу кинуть в личку.
ЗМ-5А, МАК-70, Sky-Watcher 705, DeepSky 70400, DeepSky F70070, DeepSky ED70/420, DeepSky DT700X90, Veber 50/360, Sturman F40070AZ, Sturman F30070M, Kenko 400mm F6.7 ED

Оффлайн Forte

  • *****
  • Сообщений: 3 481
  • Благодарностей: 1067
  • ••••• Святослав ••••• “Auriga” Observatory
  • Награды Победитель ежегодного конкурса астрофото
    • Сообщения от Forte
    • Astrobin
Re: Круглые звёзды для ленивых и бедных
« Ответ #18 : 09 Фев 2020 [15:01:16] »
Игорь, благодарю!  Просто посмотреть как это работает. В принципе Станислав Вольский недавно выкладывал тутор по удалению потянутостей. Если тут в один клик... Короче надо пощупать
https://www.astrobin.com/users/Forte/
Телеграм-канал обсерватории:
https://t.me/auriga_observatory
(кликните для показа/скрытия)

Оффлайн StasV

  • *****
  • Сообщений: 2 736
  • Благодарностей: 440
  • Награды Неоднократный победитель конкурса астрофото
    • Сообщения от StasV
Re: Круглые звёзды для ленивых и бедных
« Ответ #19 : 10 Фев 2020 [10:56:41] »
Я решил в связи с этим сделать простую программку для «исправления» звезд.
Идея всплывала много раз уже. И все как всегда упирается в вопрос: где грань приемлемого вмешательства в фотографию?
Тут уже рукой подать до рисования звезд кистью вручную, или импорта звездного поля из планетария, например. Причем тут астрофото тогда?
Метод сжатия звезд при помощи фильтра "минимум" уже давно является стандартной операцией обработки. Исправление потянутости  звезд путем смещения слоя и наложения по "darken" тоже применяется давно.
Почему тогда новый метод исправления формы звезд считается неприемлемым вмешательством?
Вообще, любая звезда должна быть идеальной точкой. Любое отклонение, это свойство оптики, атмосферы и т.д. Поэтому "изображения" звезд на снимке по своей природе уже артефакты.
Мне кажется, грань приемлемого вмешательства по мере роста технологий обработки будет неизбежно смещаться в сторону синтетических методов.
« Последнее редактирование: 10 Фев 2020 [11:10:37] от StasV »