Рагу из кОника По договорённости с Сергеем (tomato) схематично опишу процесс обработки
его исходников окрестностей Конской Головы.
Мой результат опубликован
здесь.
Сергей предоставил суммы L, R, G, B, H
Alpha после калибровки, совмещения и сложения исходников.
Три замечания к исходникам, ИМХО, они достаточно существенны, при обработке надо пытаться на каждом из шагов выжать по максимум из имеющегося материала.
1. (-) Суммы были в uint 16 bit, любые результаты процессинга лучше хранить во float - перезаписал во float 32 bit.
2. (-) Каналы были выровнены "внутри себя" (опорный кадр свой для каждого канала), а не "глобально" для серии, по единому опорному кадру. - перевыровнял по Green.
3. (-) Не было L_Synth, суммы из всех L, R, G, B кадров всех серий - обычно имеет наилучший S/N (но не FWHM!). В данном случае L не самый удачный из-за низкого разрешения, связаного с остаточными хроматической и сферохроматической абберациями.
Ну а дальше - непосредственно обработка. Всё делалось в PixInsight'e, стандартными средствами, плюс использовалась пара инструментов, написанное мною с использованием PixelMath, достаточно мощного интсрумента для реализации дополнительных алгоритмов. Приводится скриншот, на котором можно посмотреть параметры настроек использовавшихся инструментов.
4. Выравнивание линейного градиента фона в PixInsight -> PixelMath в индивидуальных кадрах. Применяется банальный алгоритм, написанный мной и реализующий в PixelMath формулы вида
$T+raise*XPos()/Width(),
где raise - величина коррекции, аналогично и в направлении оси Y.
5. Попытка "подмешать" H_Alpha в R и L каналы с помощью аналога Screen в PixInsight -> PixelMath, конкретно ~(~Ha * ~(k*L)), где k~0.125…0.25 (коэффициент из Linear Fit ~0.03 для L).
Этот синтетический L с подмешанным Halpha будет использоваться как L ниже.
6. Подмешивания Halpha к R по формуле из #5, коэффициент был 0,5 с тем, чтобы не сильно искажать естественный баланс цветов.
7. Формирование RGB, R использовался синтетический, из #6.
8. Обрезка краёв с помощью DynamicCrop на L и RGB.
9. Сохранение файлов на диске.
*** Работа с L (так буду называть "синтетику" Ha + L, полученную на #6)
10. {Шумодав #1} Первый шумодав по исходным линейным данным, применялся MultiscaleMedianTransform, его применение в роли шумодава описано здесь (
http://pixinsight.com/forum/index.php?topic=3553.0)
11. {Макс. Диапазон #1} Обрезка гистограммы L для удаления "хвостов", особенно слева, "горб" гистограммы должен начинаться на самом левом крае, в точке "0" (важно для MaskedStretched). Перед обрезкой применяется мой алгоритм TailCutPrep, реализованный в PixelMath, с тем, чтобы сгладить единичные "чёрные выбросы" перед тем, как обрезать хвост.
12. {Растяжение гистограммы #1} Первое растяжение гистограммы L с помощью скрипта MaskedStretch, с большим числом итераций (100) и применением маски, встроенной в скрипт (см. скриншот).
13. {Шумодав #2} Второй (лёгкий) шумодав только по "теням", с помощью ACDNR, с маской, встроенной в процесс.
14. {Макс. Диапазон #2} Удаление нового левого пустого "хвоста" на гистограмме.
15. {Растяжение гистограммы #2} Второе растяжение с помощью MaskedStretch c теми же параметрами.
16. {Увеличение локального контраста} Делается 3 последовательных прохода LocalHistogramEqualization с радиусами 64, 128 и 512 и последовательно уменьшающимися amount'ами, как говорится, по вкусу.
17. {Сжатие динамического диапазона с увеличением локального контраста} HDRMultiscaleTransform - по вкусу
18. {Коктейль} Если эффект сильнее нужного, можно #17 "смешать" в PixelMath с клоном кадра после #16, с нужными весами. При необходимости добавить других ингредиентов.
*** Работа с RGB
19. {Задать "линейное" пространство RGB} В RGBWorkingSpace выставить равные веса для всех цветных каналов.
20. {BackgroundNeutralization} Задаём нейтральный цвет неба.
21. {ColorCalibration} Калибруем цвет одним из возможных способов (на глаз, по звезде спектрального класса, близкого к солнечному, по ядрам галактик или по совокупности слабых звёзд фона, предполагая их в среднем белыми). Не забываем о сохранении нейтральности фона, достигнутого на предыдущем шаге.
22. {Шумодав #1 по RGB} Шумодавим RGB чуть более агрессивно, чем в случае с L.
23. {Обрезка хвоста}
24. {Растяжение гистограммы #1}
25. {Шумодав #2 по RGB}
26. {Обрезка хвоста #2}
27. {Растяжение гистограммы #2} - шаги 22…27 делаются аналогично оным при работе с яркостным каналом, шаги 10...15, см. выше.
28. {Повышение цветового контраста} Если уместно, кривыми по отдельным каналам, не сильно, совсем чуть-чуть.
*** Сборка LRGB, финальные штрихи.
29. {Разложение RGB на каналы} ChannelExtraction.
30. {Сборка LRGB} c помощью LRGBCombination, этот процесс надо применять к уже растянутым данным, см. скриншот, здесь настраивается цветность и "яркость" финальной картинки в первом приближение.
Если всё сделано правильно, то позднее насыщенность цветов поднимать не придётся.
31. {Маска для звёзд} Делаем маску для звёзд, см. скриншот, применим её ниже для того, чтобы слегка "притушить" слабые звёздочки.
32. {Тушим звёзды} Morphological Transform - Minimize, только по звёздам, не прикрытым маской.
33. В принципе, готово.
34. По настроению, подкручиваем контраст (кривыми), насыщенность, вращаем и кадрируем изображение. Сохраняем в FITS и в TIFF, записываем в JPEG для публикации в сети.
Как-то так, всё достаточно линейно и тривиально.
Надеюсь, кому-то пригодиться.
Проблема в том, что внутри - много тонкостей, их лучше увидеть на мониторе, наблюлая за реальной обработкой, "теоретически" они могут быть непонятны.
И ещё одно замечание - насыщенность можно сделать меньше, контраст меньше, и т.д., меньше - не больше, главное, знать "как", "когда", и с помощью каких инструментов.
PS: Выше ни коим образом не затронуты вопросы, касающиеся многочисленных возможных проблем со звёздами.
Моё мнение просто - лучше вложиться в отличные исходники, чем потом пытаться сломать себе глаза, устраняя дефекты, привнесённые оборудованием, его недостаточно хорошей коллимацией, абберациями, или просто малым временем накопления. Хорошие исходники - залог успеха!