Redukcja gwiazd i praca z gwiazdami: ewolucja metod oraz praktyczne zastosowanie PixelMath
Odpowiednia redukcja gwiazd sprawia, że główny obiekt zdjęcia staje się wyraźniejszy — zwłaszcza w gęsto usianych gwiazdami rejonach, takich jak obszar Drogi Mlecznej, gdzie bez takiego zabiegu niebo pełne gwiazd poważnie zaburza mgławice. Ten artykuł porządkuje metody redukcji gwiazd: od filtrów erozji sprzed lat aż po dzisiejszą wiodącą metodę opartą na obrazie bez gwiazd i jej realizację za pomocą procesu PixelMath.
Dawna metoda: redukcja gwiazd przez erozję (Erosion)
Najwcześniejsza redukcja gwiazd opierała się na erozji (Erosion): w programie Photoshop używało się filtra „Minimalne” (Minimum), a w programie PixInsight — procesu Erosion, aby erodować gwiazdy w zaznaczonym obszarze i w ten sposób je zmniejszyć. Kto podchodził do tego staranniej, łączył to z maską krawędziową, żeby nie wyerodować samych jąder gwiazd.
Szczerze mówiąc, początkowo raczej nie redukowałem gwiazd, ponieważ klasyczna Erosion często je psuje (na przykład zamienia okrągłe gwiazdy w romby albo niszczy tzw. gwiazdy diamentowe). Ale przy niektórych obiektach — na przykład przy Wielkiej Mgławicy w Kilu (Carina), leżącej w obszarze Drogi Mlecznej — nawet najlepiej wykonana maska gwiazd nie zapobiegnie temu, że w gotowej pracy mnóstwo gwiazd nadal będzie zaburzać mgławicę, i wtedy po prostu nie da się uniknąć redukcji. Właśnie dlatego największą piętą achillesową redukcji przez erozję jest jej skrajna wrażliwość na jakość maski: gdy maska jest źle zrobiona, w jądrach gwiazd i wokół nich łatwo powstają artefakty.

Punkt zwrotny: redukcja gwiazd za pomocą obrazu bez gwiazd
Postęp sprawił, że redukcja gwiazd stopniowo stała się czymś, co da się załatwić przeciągnięciem suwaka, a klasę wielkości redukowanych gwiazd można dowolnie ustawić. Kluczowe było to: ludzie zaczęli używać narzędzi do usuwania gwiazd (takich jak StarNet++) do ich zmniejszania, a nie tylko do usuwania. W 2021 roku, po przeniesieniu tego wszystkiego do skryptów, stało się jeszcze wygodniej, a filtr „Minimalne” w programie Photoshop czy proces Erosion w programie PixInsight nie były już zbyt popularne.
W programie PixInsight pojawił się gotowy do użycia skrypt do redukcji gwiazd. Nie korzysta on ani z filtra „Minimalne”, ani z procesu Erosion — osiąga cel, łącząc StarNet++ z maską Contour Mask.

Przy okazji wyjaśnię jedną łatwą do pomylenia rzecz: opcja „Create star mask” w programie StarNet++ tworzy w rzeczywistości nie maskę, lecz same usunięte gwiazdy. Jeśli za pomocą procesu PixelMath w programie PixInsight albo warstw w programie Photoshop dodasz ten star_mask z powrotem do obrazu bez gwiazd, otrzymasz coś praktycznie identycznego z oryginałem sprzed usunięcia gwiazd.

Czy po redukcji wszystkie gwiazdy stają się tej samej wielkości
Pewien kolega po fachu twierdził kiedyś, że po redukcji wszystkie gwiazdy mają tę samą wielkość. Czy tak jest naprawdę? Otóż nie — wielkość zredukowanej gwiazdy zależy głównie od jej pierwotnej wielkości oraz od maski użytej do redukcji.
W praktyce przy każdej redukcji wybierasz typ gwiazd, które chcesz zmniejszyć (przede wszystkim małe i średnie), i przygotowujesz maskę dopasowaną do ich wielkości, więc po redukcji gwiazdy nadal różnią się rozmiarem — jedynie po ich otoczeniu można poznać, że redukcja została przeprowadzona. Weź za przykład powiększony obraz SL 17: to wynik dwukrotnej redukcji gwiazd (jak dotąd nie robiłem więcej niż dwóch przejść).




Redukcja gwiazd za pomocą procesu PixelMath (stan nieliniowy)
Redukcję gwiazd na podstawie obrazu bez gwiazd można precyzyjnie wykonać w programie PixInsight za pomocą procesu PixelMath. Oto poszczególne kroki:
- Przygotuj plik obrazu A oraz plik B — obraz A bez gwiazd.
- Za pomocą STF w połączeniu z procesem HistogramTransformation jednocześnie obniż jasność A i B (przesuń midtone w prawo).
- Odwróć przyciemnione A i B (klawiatura: Ctrl+I).
- Podziel odwrócone A przez odwrócone B, aby otrzymać odwrócony obraz gwiazd C (PixelMath).
- Pomnóż C przez odwrócone B, aby otrzymać odwrócony obraz ze zredukowanymi gwiazdami D (PixelMath).
- Odwróć D z powrotem do normalnego obrazu ze zredukowanymi gwiazdami (Ctrl+I).
Kroki 5 i 6 to w rzeczywistości dokładnie wzór screen blending mode. Jeśli chcesz mocniejszej redukcji, w kroku 2 obniż jasność A i B jeszcze bardziej. Wzór poglądowy:
afterimage = ~((~mtf_low(beforeimage) / ~mtf_low(starless)) * ~starless)

Tę samą metodę można odtworzyć również w programie Photoshop lub Affinity Photo — różnica polega na tym, że robi się to na warstwach, a tryby mieszania (blending mode) między warstwami nieco się różnią.

Klucz: gwiazdy trzeba poprawnie wydobyć „odwróconym dzieleniem”
Wiele osób obrabia obraz metodą bez gwiazd, ale na końcu ponosi porażkę przy dodawaniu gwiazd z powrotem — sedno tkwi w tym, w jaki sposób gwiazdy zostały wydobyte.
Jeśli po prostu odejmiesz obraz bez gwiazd od oryginału, aby uzyskać gwiazdy, a potem dodasz je z powrotem, efektem są zwykle blade gwiazdy o nieprawidłowym kolorze, wyglądające tak, jakby obniżono krycie warstwy. Powodem jest to, że część zawartości gwiazd została na obrazie bez gwiazd — odejmowanie nie zdołało wydobyć ich w całości.
Lepszy sposób to uzyskanie pełnych gwiazd odwróconym dzieleniem; po zakończeniu obróbki obrazu bez gwiazd wstawiasz je z powrotem mnożeniem albo odwróconym mnożeniem (screen blending mode).

Stan liniowy i nieliniowy: wzory na wydobycie i wstawienie są różne
Po tym, jak RC Astro wypuściło StarXTerminator (SXT), zakres stosowania usuwania gwiazd rozszerzył się ze stanu nieliniowego również na stan liniowy. W stanie liniowym i nieliniowym kroki oraz wzory na wydobycie i wstawienie gwiazd nadal jednak nieco się różnią, o czym często się zapomina.
Stan nieliniowy (obraz został już mocno rozciągnięty, więc piksele nie zachowują już pierwotnej liniowej zależności):
- Wydobycie gwiazd: zaznacz „Unscreen Stars” w SXT albo po usunięciu gwiazd uzyskaj je wzorem odwróconego dzielenia
~(~Original_Nebula / ~Starless_Nebula). - Wstawienie gwiazd: w procesie PixelMath użyj wzoru odwróconego mnożenia
~(~Nebula * ~stars)— to zarazem matematyczny wzór trybu Screen Blending.
Stan liniowy (po integracji, a przed mocnym rozciągnięciem, gdy piksele zachowują pierwotną liniową zależność):
- Wydobycie gwiazd: nie zaznaczaj „Unscreen Stars” w SXT.
- Wstawienie gwiazd: w procesie PixelMath użyj wzoru dodawania
Nebula + stars.

Gdy wyjaśnisz sobie, w jakim stanie jest twój obraz, i użyjesz odpowiednich wzorów do wydobycia oraz wstawienia gwiazd, unikniesz problemu gwiazd, które po wstawieniu ciemnieją, zmieniają kolor albo w ogóle się nie udają.