Lázár József: Bevezetés a PixInsight használatába

Ezen dokumentum nem kíván sem a gyártó által nyújtott dokumentumok, sem a YouTube csatornákon keresztül elérhető oktató anyagok konkurenciája lenni. Legfontosabb célként azt tűzi ki maga elé, hogy olvasóját a lehető legrövidebb idő alatt megismertesse a PixInsight (a továbbiakban PI) használatával, illetve a későbbiekben – akár itinerként is használva – megkönnyítse a képfeldolgozási munkafolyamatot.

Sokszor hallani, hogy a legtöbb fotóst az riasztja vissza a PI használatától, hogy a szoftver megismerése hosszú időt vesz igénybe és a használata bonyolult. Ez csak részben igaz. Az egyes dialógusok valóban rengeteg paraméterrel rendelkeznek, de a 80-20-as szabály itt is érvényes, vagyis az esetek nagy részében a paraméterek kb. 80%-ához hozzá sem kell nyúlnunk. A maradék 20% viszont valóban gyakorlatot és kitartást igényel.

A leírás a PixInsight 1.8.8-6 verzióhoz készült.

Kezdjünk is bele.

A felület testreszabása

A PI egy jól átgondolt és jól szabható felülettel rendelkezik. Ahhoz, hogy gyorsan és egyszerűen tudjunk vele dolgozni célszerű azt a mi ízlésünkre alakítani. Először nézzük meg milyen elemekből áll a felhasználói felület és azok hogyan viselkednek.

A legfontosabb elem maga a képeket, ikonokat, dialógusokat megjelenítő ablak. A PI úgy próbál viselkedni, mintha maga lenne az operációs rendszer, és annak felhasználói felülete. Ez azt jelenti, hogy a képfeldolgozás során a PI felületét semmiért sem kell elhagynunk. Ahhoz, hogy bőven legyen helyünk a képeinket és a dialógusokat megjeleníteni, azokat akár különböző rendező elvek szerint külön-külön is megjeleníteni, a PI is alkalmazza - a Linux ismeretekkel rendelkezőknek jól ismert - virtuális képernyő fogalmát. A virtuális képernyő úgy viselkedik, mintha több fizikai képernyőnk lenne, amin egymástól függetlenül tudunk képeket, ikonokat, dialógusokat megjeleníteni. Így akár szétválaszthatjuk az előfeldolgozást a véglegestől, vagy egy mozaik esetén az egyes részképek feldolgozását.

PI1

A hab a tortán, hogy az összes képernyő teljes tartalmát (egy projektet) bármikor el is menthetjük és persze vissza is tölthetjük. Így egy projekt aktuális feldolgozási állapota (beleértve a bennük található képeket és az azokon végzett műveleteket) egyetlen kattintással menthető (File → Save project…).

A következő elem az ablak szélei mentén felugró ablak, amely alapértelmezésben zárt állapotban van, viszont ha fölé húzzuk az egeret felnyílik (vagy a PI maga nyitja ki azokat). A Process Console ablak például minden műveletnél megnyílik és a program futásának lépéseit/eredményeit mutatja. Ez egy fontos ablak, viszont idegesítő, hogy mindig a bal felső részt – ahol általában a képeink vannak – kitakarja. Ezért ezt a felugró ablakot célszerű a jobb alsó sarokba tenni, ahol nem zavar senkit.

PI2

A PI további nagyon hasznos tulajdonsága, hogy az egyes, általa Process-eknek hívott és dialógusok formájában megjelenő al-programok nem csak a menürendszeren keresztül érhetők el, hanem azok az egyes virtuális ablakok felületére is „dobhatók”. Ez hasonlóan viselkedik, mint pl. a Windows parancsikon rendszere, tehát ha ezekre duplán kattintunk azok kinyílnak és végrehajthatóvá válnak. Célszerű tehát az általunk használt processzeket egyszer a virtuális ablak felületére „dobálni” (pl. a jobb oldalon lévő függőleges vonal jobb oldalára).

PI3

Én még a használat sorrendjébe is szoktam őket rendezni, így nem kell állandóan bóklásznom a menükben, hanem csak az ablak megfelelő ikonjára kattintva gyorsan elérem őket. Természetesen az ikonok is elmenthetők és visszatölthetők (jobb egérgomb a virtuális ablakban, majd Process Icons Save Process Icons…).

PI4

A képfeldolgozás során használt programok dialógusokon keresztül „kommunikálnak” velünk. A dialógusok a működésükhöz szükséges paramétereket tartalmazzák „ömlesztve” vagy logikailag egy-egy egységbe rendezve. Az egyes egységek a dialóguson belül a dupla felfelé vagy lefelé mutató ikonra kattintva nyithatók vagy zárhatók (a jobb átláthatóság érdekében). A dialógusok – amíg aktívak – mindig az utoljára megadott paramétereket tartalmazzák. Mindig ügyeljünk rá, hogy az egymástól független képek feldolgozásához azokat alaphelyzetbe (Reset) hozzuk a jobb alsó sarokban található ikonra kattintva. Ahogy azt már korábban is említettem, egyes programok rengeteg paramétert igényelnek, viszont ezek jelentős részét sohasem kell megváltoztatni, mivel az alapértelmezésbeli érték tökéletes. A dialógus-ablakok alsó és felső szélein további vezérlő ikonok találhatók. Ezek jelentését majd ott ismertetem ahol szükség lesz rájuk, a többit működését esetleg mindenki saját maga kísérletezze ki.

Miután a felületet megismertük és a kezünk alá szabtuk, hozzákezdhetünk az érdemi munkához.

Alapfogalmak, illetve a feldolgozás folyamata

Mielőtt elvesznénk a feldolgozás részleteiben, tisztázzunk néhány alapfogalmat, illetve nézzük át a kalibrálás folyamatát.

PI5

A fenti mátrix jól szemlélteti, mi is kerül a RAW fájlban rögzítésre, nevezetesen az egyes pixelekben kiolvasott intenzitás értékek. A RAW fájlon még elvégeznek egy veszteségmentes tömörítést is, de csak azért, hogy több kép férjen el egy flash kártyán. Mikor egy ilyen RAW képet megnyitunk, egy szürkeárnyalatos képet kapunk. Ha ekkor be-zoomolunk a képbe és a megjelenítés értékeit is megfelelően vesszük fel, a szűrők által okozott hatás jól láthatóvá válik.

Mivel mi alapvetően színes képet szeretnénk látni, minden egyes pixelben meg kell határoznunk a hiányzó színek intenzitás-értékeit. Ehhez a PI több algoritmust is a rendelkezésünkre bocsát.

A kalibrálás folyamata

Most tekintsük át röviden, hogy az egyes felvételek milyen információkat (és hibákat) hordoznak, és abból hogyan tudjuk a számunkra fontos adatot (pl. egy galaxist) kihámozni.

A digitális kamerák CCD vagy CMOS chip-je nagy hűséggel és linearitással gyűjti a tárgyakról érkező fényt. Sajnos ez az információ a chip hőmérsékletével, a kiolvasó elektronika hibáival, valamint több, más forrásból eredő zajjal is terhelt. A Dark és Bias képek hivatottak ezen hibák értékének és karakterének meghatározására. A képet ezen felül még a távcső optikai út hibái, a chip pixeleinek „egyenetlen” érzékenysége, por és egyéb szennyeződések is terhelik. Ezen hibák kiszűrésére készítjük a Flat-field képeket.

A fentiek tükrében a kép, amelyet készítünk, az alábbi képlettel fejezhető ki:

PI6

ahol a „Jel” a fényképezni kívánt objektumot reprezentálja, míg a Light, amit valójában lefényképeztünk. Ebből következően:

PI7

Tudunk kell, hogy a Flat képek is a Light-okhoz hasonló hibákkal terheltek, tehát:

PI8

Ha mindezt a (2)-es egyenletbe helyettesítjük, akkor az alábbi általános képlethez jutunk:

PI9

A képletben a Dark a kamera sötét-áram zaját reprezentálja, amely a hőmérséklettel, ISO értékkel és az expozíciós idő hosszával áll összefüggésben. Azt is tudnunk kell, hogy minden felvétel, amit a kamerával készítünk, tartalmazza a Bias képet is, ebben a Dark sem képez kivételt, tehát a Dark’-ot definiálhatjuk így is: Dark' = Dark + Bias, valamint ehhez hasonlóan: Flat Dark' = Flat Dark + Bias. Ezekkel „egyszerűsítve” képletünket, a végleges formula az alábbi lesz:

PI10.png

Ez utóbbi képlet azt is megmondja számunkra, hogy egy objektum fényképezésekor milyen egyéb képeket kell elkészítenünk ahhoz, hogy a felmerülő zajokat a minimálisra tudjuk csökkenteni. A „vizuálisan” gondolkodók számára mellékelek egy képet is a folyamatról.

PI11

Miután minden light képet kalibráltunk kezdhetjük meg azok összeadását (sztekkelését). Nagyon fontos itt megjegyezni, hogy a kalibrálás és a sztekkelés során mindig az eredeti nyers képeket kell használni, azokon normalizálást, hisztogram transzformációt vagy bármi olyan műveletet végrehajtani, ami véglegesen megváltoztatja a pixelek intenzitását TILOS! Ezt a szakaszt hívjuk lineáris szakasznak, ekkor a képek még az eredeti pixel-intenzitásokat tartalmazzák. A feldolgozás végén, a részletek kiemelése miatt már többször is műveleteket végzünk a pixelekkel, ekkor válik a kép nem-lineárissá. Tudományos célra (pl. fotometria, spektroszkópia) ezen utóbbi képek már nem alkalmasak!

A sztekkelés folyamata

A sztekkelés során az összes (már kalibrált, de még lineáris) képünket „összeadjuk”, hogy ezzel növeljük a jel/zaj viszonyt. Mivel az egyes képek készítése között a látómezőnk elmozdulhatott, vagy akarattal mozgattuk el (bolygatás), vagy például több képből készült mozaikot készítettünk, azokat egyszerűen összeadni nem tudjuk. Mivel a csillagok az egyes képeken véletlenszerű pixel-eltolással lesznek leképezve, így minden képen először csillagkeresést kell végeznünk az x-y irányú eltolások, az esetleges elforgatások (vagy az esetlegesen más optikával készült felvételek között fellépő más-más méretarányok) meghatározására. A képek ezután már egymásra transzformálhatóvá válnak.

A sztekkelés folyamata attól függ, hogy színes, vagy monokróm képsorozatot készítettünk. Színes képek esetén a feladat egyszerű, vesszük az összes képet és az egymáshoz illesztés után összeadjuk azokat. Monokróm képek esetén a folyamat kicsit bonyolultabb, mivel ilyenkor az illesztést (és sztekkelést) először – egyenként – az összes színcsatornára el kell végezzük. Miután ezzel végeztünk az egyes csatornákkal ugyanezt az illesztést ismételten el kell végezzük. Az RGB (és egyéb) csatornák összeadása csak ezután lehetséges.

Képátviteli függvény, hisztogram transzformáció

A fent említett lineáris, nem-lineáris fogalmakat szeretném itt most kibontani. Azt már mindenki tapasztalta, hogy a detektorról lejövő nyers kép általában olyan intenzitás-eloszlást tartalmaz, ami közvetlen megjelenítéskor vagy teljesen sötét képet eredményez, vagy ha látszódnak is a legfényesebb területek, a közbenső tónusok teljesen láthatatlanok maradnak. Egy 16 bites kép 65536 szürke árnyalatot tartalmaz(hat). Az emberi szem pedig csak kb. 30 szürke árnyalatot képes elkülöníteni (a rosszul beállított monitorokról nem is beszélve). Mivel az általunk fényképezett objektumok intenzitásai a 65536 tartománynak csak nagyon kis részét foglalják el, ezért ha a teljes dinamika-tartományt lineárisan jelenítjük meg, a számunkra fontos információ annyira „összenyomódik”, hogy a szemünk számára láthatatlan marad. Ezért úgy kell alakítanunk a megjelenítést, hogy ez a „belső” intenzitás-tartomány legyen széthúzva az általunk látható tartományra. Ezt valamilyen képátviteli függvénnyel, a képhez tartozó hisztogram módosításával szokták a számítástechnikában elérni. A PixInsight-ban ezt a ScreenTransferFunction (STF) funkció végzi. Nagyon fontos tudni, hogy az STF, miközben a képet számunkra látható formában megjeleníti, annak tartalmához nem nyúl! Amennyiben a kép megjelenítését egy STF transzformáció végezte el, a kép bal margóján egy zöld csíkocska jelenik meg.

A feldolgozás végén mindenképpen ki fogunk lépni a lineáris szakaszból, mivel minket csak az objektum dinamikája érdekel. Ehhez általában a HistogramTransformation (HT) programot fogjuk használni és azt legtöbbször az STF aktuálisan beállított értékeivel szoktuk elvégezni. Szerencsére a két program teljesen hasonló paraméterek alapján dolgozik, ezért az STF aktuális értékeit bármikor beállíthatjuk a HT programban is. Ehhez egyszerűen húzzuk át az STF-et a HT kontroll sorára.

PI12

Ekkor a képünk végérvényesen nem-lineárissá válik.

Itiner

Előfeldolgozás, kalibráció

Szakasz Feladat Program Megjegyzés

Lineáris

 

Master bias előállítása

ImageIntegration

 

Az egyes bias képek sztekkelése, valamint egy zajmentes master superbias előállítása. A bias képekkel kapcsolatban az alábbiakat érdemes megjegyezni: az összes kép, amit a kameránkkal készítettünk tartalmazza a bias-t. Ha kivonjuk a dark-ot a light-ból, és a flat-dark-ot (amelyek expozíciós ideje megegyezik a flat idejével) a flat-ből, akkor a bias-t mindkettőből kivontuk és nincs szükségünk különálló bias képekre. Ha azonban a dark-okat skálázni akarnánk (tehát a flat-ekhez nincs különálló dark-unk), akkor mindenképpen szükség van bias képekre is. A PI SuperBias funkciója eltünteti a véletlenszerű zajt és csak a fix zajmintát hagyja meg, ezáltal több zajt képes a képekből kivonni.

Master dark előállítása

ImageCalibration

ImageIntegration

A sötét képek kalibrálása a master superbias-szal.

Master flat előállítása

ImageCalibration

ImageIntegration

Az egyes flat képek kalibrálása a master superbias-szal és a master dark flat-tel. Lehetőség szerint leskálázott master dark-ot ne használjuk, mindig készítsünk a flat-ekhez dedikált dark-okat.

Light képek kalibrálása

ImageCalibration

CosmeticCorrection
Master bias, dark, flat alkalmazása a nyers képekre, hot/cold pixelek kivonása.

Debayer

Debayer

DSLR vagy OSC kamera használata esetén a light képek Debayer-elése.
A legjobb light képek kiválogatása

SubframeSelector

A képek metrikus adatai alapján súlyok számítása a sztekkeléshez.
Illesztés, sztekkelés
Szakasz Feladat Program Megjegyzés
Lineáris

A light képek regisztrálása

StarAlignment

 

Háttérzaj csökkentése

LocalNormalization

A jobb jel/zaj viszony és finomabb átmenetek érdekében.

Sztekkelés

ImageIntegration

DrizzleIntegration

 

Monokróm képek esetén a fenti lépéseket minden egyes színcsatornára egyenként el kell végezni.

A fentiek lépéseket a PI BatchPreprocess funkciójával is el lehet végezni, de a lépések jobb megértése érdekében célszerűnek láttam a feladatot lépésről-lépésre megismertetni.

Monokróm képek illesztése, sztekkelése

Szakasz Feladat Program Megjegyzés
Lineáris A színcsatornák képeinek regisztrálása StarAlignment  
„Kilógó” szélek levágása

DynamicCrop

 
Háttér-gradiensek kivonása

DynamicBackgroundExtraction

 
 

LinearFit

A különböző szűrők használata és a változó égboltviszonyok miatt a háttér átlagfényessége változik. Ezt egy lineáris függvénnyel modellezzük és a hisztogramokat „egységes formára” hozatjuk.
R, G, B sztekkelés

ChannelCombination

 
 

BackgroundNeutralization

 
Szín-kalibráció

ColorCalibration

vagy PhotometricColorCalibration
Color-cast eltüntetése

SCNR

A DSLR képeken esetleg megjelenő zöldes szín eltávolítása.

Utófeldolgozás

Szakasz Feladat Program Megjegyzés

Nem-lineáris

L csatorna hozzáadása

LRGBCombination  

Zajcsökkentés

MultiscaleLinearTransform TGVDenoise

 
Csillagok méretének csökkentése

HDRMultiscaleTransform MorphologicalTransformation

 

További utófeldolgozási feladatok

A feldolgozás során használt könyvtárak

A feldolgozás során képeink különböző változásokon esnek át, így célszerű azokat egymástól elkülönítve tartani. Nem szerencsés az sem, ha az eredeti képeket a keveredés miatt véletlenül felülírjuk vagy kitöröljük. Én az alábbiakat javaslom, és a későbbiekben is ezekre fogok hivatkozni:

A Calibrated, Approved, Registered könyvtárak a munka végén kitörölhetők, mivel csak a képek közbenső állapotait tartalmazzák. A többit célszerű megtartani és esetleg felhő-tárhelyre (pl. Dropbox), külső adathordozóra archiválni.

Gyors képszűrés

Erre a feladatra szinte mindenki a Blink programot használja. Tökéletes és gyors eszköz a már ránézésre is hibás képek kiszűrésére. Használata egyszerű, nem igényel magyarázatot. Én minden olyan képet, amely ovális csillagokat, durva mesterséges hold csíkokat, vagy (pl. felhők miatti) erős jel/zaj viszony csökkenést mutat, ki szoktam venni a feldolgozásból. Mivel a mesterséges hold csíkokat a feldolgozás során más módszerrel is el tudjuk tüntetni, egy kisebb „szennyezettség” miatt egy jó képet azért ne dobjunk ki.

Master bias előállítása

A bias az a zaj, amit a kiolvasó elektronika okoz a képen. Mivel nem akarjuk, hogy készítése közben egyéb véletlen zaj is a képre kerüljön, ezért azt a legrövidebb lehetséges záridővel készítjük. A csillagászati fényképezésnél a "minél több, annál jobb" elvet alkalmazzuk. Természetesen mindig van egy határ, amit még hajlandóak vagyunk elkészíteni, illetve ami felett már csak minimális javulás várható a végtermék minőségében. Mivel a bias képek esetén rövid a záridő, tetszőleges mennyiségű (akár több száz) képet készíthetünk. A master előállításakor ezeket a képeket sztekkeljük egymásra.

A keletkezett kép a master bias, amit mentsünk el a Masters könyvtárba.

Master dark előállítása

Miután elkészültünk a master bias képpel, a master dark-ot kell előállítanunk. Ehhez, a master bias előállításával teljesen azonos beállításokat kell alkalmaznunk. A dark-okból először kivonjuk a bias zajt, hogy azok tisztán csak az érzékelő sötétáram zaját tartalmazzák. Ez különösen akkor fontos, ha később a master dark-ot "kalibrálni" is akarjuk. Erre akkor van szükség, ha a dark és a light képet expozíciós ideje nem egyezik meg.

A kalibrált képek az Output directory könyvtárban keletkeztek.

A keletkezett kép a master bias, amit mentsünk el a Masters könyvtárba.

Master flat előállítása

Mielőtt elkészíthetnénk a master flat képet, előbb az egyes flat képeket a master bias és a master dark képekkel kalibrálnunk kell.

A kalibrált képek az Output directory könyvtárban keletkeztek. A sztekkeléshez ismét az ImageIntegration programot használjuk.

Monokróm CCD esetén minden egyes szűrőhöz egy-egy master képek tartozik, DSLR esetén természetesen csak egy lesz.

A light képek kalibrálása, hot és cold pixelek korrigálása

Ebben a lépésben a light képeket fogjuk a már elkészült master-ekkel kalibrálni, valamint megpróbáljuk a még megmaradt hot és cold pixeleket eltüntetni.

A light képek kalibrálása után próbáljuk meg a még megmaradt hot és cold pixeleket eltüntetni.

A munka felgyorsítása érdekében most ki kell jelölnünk egy „előnézeti” ablakot egy olyan terület körül, ahol jól látható mennyiségű hot pixel található (fehér pixelek, amik egyértelműen nem csillagok). Mindjárt tegyük az előnézetet aktívvá, hogy a későbbiek során csak azt lássuk.

Érdekes, hogy a hot pixeleket a master dark használata sem tudja mindig megszüntetni. Ez esetben kapcsoljuk be a Use Auto detect opciót és nézzük meg, hogy a Hot Sigma csúszka változtatása milyen hatással van a hot pixelekre. A alacsonyabb értékek agresszívabban tüntetik el a pixeleket, ezért 1.0 alá ne igen vigyük az értékét. Az előzőek analógiájára csökkenthetjük a cold pixelek számát is (Cold Sigma).

A Use Defect list opcióval megadhatjuk, hogy a képen hol találhatók hibás oszlopok vagy sorok. Erre egy jó master super bias és master dark esetén a legtöbb esetben nem lesz szükségünk.

Amennyiben elégedettek vagyunk az eredménnyel, bezárhatjuk a használt képet és az előnézetet is. A még mindig megnyitott CosmeticCorrection program Apply Global gombjára kattintva hajtsuk végre a korrekciót az összes képen.

Ha képek OSC vagy DSLR kamerával készültek a következő lépésben Debayer-elni kell őket.

Amennyiben a képek monokróm CCD-vel készültek, a fent leírt teljes műveletsort minden egyes színcsatornára (külön-külön) végre kell hajtanunk (természetesen a Debayer művelet kivételével).

A legjobb light képek kiválogatása, súlyok hozzárendelése

A SubframeSelector program képeink minőségét olyan adatok alapján képes mérni, mint pl. az átlagos csillagméret (FWHM – Full-Width Half-Maximum), ovalitás, zaj, jel-zaj viszony (SNR Signal-to-Noise Ratio). Ezzel lehetővé válik, hogy ne csak „érzelmi” alapon döntsünk egy kép jóságáról. További lehetőség, hogy a program ezen adatok alapján egy súlyt rendeljen a képhez, amelyet a sztekkelésnél figyelembe tudunk majd venni.

PI13

Folytassuk most az egyes képek súlyainak meghatározásával. A súlynak ideális esetben három fontos tényezőt kell figyelembe vennie: FWHM, ovalitás és SNR.

PI14

Fontos, hogy mielőtt a programból kilépnénk megjegyezzük, hogy melyik volt a legnagyobb súllyal megjelölt kép. Ezt később már nehéz lesz kitalálni, viszont a következőkben, mint referencia képre hivatkozni fogunk.

A light képek regisztrálása

Első lépésként azt kell eldöntenünk, hogy melyik kép lesz a regisztráció referencia képe. A PI az összes többi képet ehhez fogja igazítani. A regisztrált képek mérete is a referencia kép méretével lesz megegyező! Referenciának azt a legmagasabb optimalizált súllyal (SSWEIGHT) rendelkező képet kell választani, amit az előző előző lépésben megjegyeztünk.

Az, hogy mennyi csillagot talál az algoritmus nagyban múlik azon is, hogy eleve mennyi csillag van a képen és, hogy azok mennyire kerekek. Ha a regisztráció elsőre nem jön létre azért még van esélyünk 1-2 paraméter állítgatásával.

Az első, hogy a RANSAC tolarance értékét megemeljük a Star Matching fül alatt. Alapértéke 2.0, de megpróbálhatjuk egészen 6-ig vagy 8-ig megemelni. E mellett megemelhetjük a RANSAC iterations értékét is mondjuk 3000-re. Ezen értékekkel a PI sokkal „gondosabban” keresi a csillagokat. Ahhoz hogy a PI-t arra kényszerítsük, hogy halványabb csillagokat is megtaláljon a Star Detection fülön a Log(sensitivity) értékét kell csökkentenünk. Ez egy logaritmikus érték, tehát az alacsonyabb értékek növelik az érzékenységet, így akár a legalacsonyabb -2.00 vagy -3.00 értékek is jó eredményre vezethetnek. De megemelhetjük a Detection scales értékét is akár 6-ra, hogy több csillagot találjon az algoritmus.

Normalizálás

Amennyiben képeink felhős vagy fátylas égbolton készültek a LocalNormalization program használatával a sztekkelt végeredmény kép „tisztábbnak”, a háttér kevésbé zajosnak, míg a jel-zaj viszony erősebbnek fog látszódni.

A light képek sztekkelése

A sztekkelés eredménye automatikusan megjelenik egy új ablakban. Auto-stretch-eljük (az STF segítségével), nagyítsunk bele és alaposan nézzük meg részleteiben is az eredményt. Ha továbbra is látunk mesterséges hold vagy kozmikus sugár nyomokat a Sigma low és Sigma high értékeit is változtatnunk kell. Ehhez előbb zárjuk be az előző sztekkelés eredményképét és térjünk vissza az ImageIntegration programhoz. Ha az alapértelmezett 4.00 és 2.00 nem működött, csökkentsük a Sigma low és Sigma high értékeit először 3.00-ra és 2.00-ra. Ha még mindig vannak maradványok, csökkentsük tovább 2.75-re és 1.75-re. Ez egy egyszerű iteráció. Minden beállítás után sztekkeljük újra a képeket (a dialógus egyéb értékeihez ne nyúljunk), majd ellenőrizzük az végeredményt.

Ha elégedettek vagyunk az eredménnyel, egyszerűen zárjuk be az összes keletkezett képet és az ImageIntegration ablakot is. Ez furcsának tűnik, de mi a képeket drizzle algoritmussal szeretnénk sztekkelni! Mivel az ImageIntegration program minden futási alkalommal frissítette a drizzle adat-fájlokat, semmi sem veszik el ha azt egyszerűen bezárjuk.

Színes képek esetén a sztekkelése ezen a ponton befejeződött. Amennyibe a képek monokróm CCD-vel készültek, a fent leírt műveletet minden egyes színcsatornára (külön-külön) végre kell hajtanunk.

Drizzle alkalmazása a light képre

A drizzle sztekkelés lényege, hogy a képet a program felskálázza (pl. 2-szeresére vagy akár 3-szorosára) annak érdekében, hogy a pixelek közötti interpoláció finomabb átmeneteket produkáljon. Erre főként akkor van szükség, ha az egyes képek között enyhe forgás is bekövetkezett (mivel az egyes pixelek négyzet alakúak). Az eredménykép szürke-átmenetei finomabbak lesznek és kevésbé pixelesek. A másik indok a drizzle-re a nyers képek alul-mintavételezettsége lehet (tehát, ha nem felelnek meg a Nyquist kritériumnak).

A program futása után megjelenő képet már elmenthetjük, mint a sztekkelés „hivatalos” eredményét.

A fekete élek körbevágása

A körbevágáshoz használt program a használt képen egy munkamenetet nyit, ami azt jelenti, hogy addig más képen nem használható, amíg az adott képen nem fejeztük be a munkát. A körbevágást mindig a legtöbb fekete széllel rendelkező képen végezzük.

A háttér kivonása

Ebben a lépésben mintavételi pontokat helyezünk el a képen (annak csak hátteret tartalmazó részein), ami alapján egy háttérmodellt számíttatunk a programmal, majd azt kivonjuk a képből. A mintavételi pontok elhelyezését azon a képen végezzük, amin a legjobban el tudjuk különíteni a hátteret a ködösségtől vagy a fényes csillagmezőktől. Az így felvett ponthalmazt fogjuk majd alkalmazni az összes többi képen is. Minden képet minimalizáljunk a felületen, csak a fentieknek megfelelő maradjon maximalizálva.

A képek háttérfényességének illesztése

Az egyes színcsatornák képeinek egyesítése előtt biztosítanunk kell, hogy azok hisztogramjai minél közelebb essenek egymáshoz. Ebben a lépésben ezt fogjuk korrigálni.

Színcsatornák egyesítése

Még egy módszert bemutatok a csatornák egyesítésére, amit főként akkor alkalmazzuk, ha az egyes csatornák képeit nem 100%-ban szeretnénk az adott csatornába tenni. Erre a legjobb példa a keskenysávú szűrőkön át készült képek kombinálása.

A fenti módon pontosan ugyanazt a képet kaptuk, mint a ChannelCombination program segítségével. A PixelMath program igazi erejét az adja, hogy az egyes mezőkbe tetszőlegesen bonyolult matematikai kifejezéseket írhatunk az Expression Editor segítségével (vagy persze kézzel is). Pl: RGB/K: Ha, G: OIII, B: OIII * 0.85 + 0.15 * Ha. Ezzel kedvünkre játszhatunk és a legkülönlegesebb palettákat állíthatjuk elő.

A háttér semlegesítése

A program a kép hátterét közömbösíti (szürkíti), ha az valamelyik szín felé lenne elcsúszva. Ez a szín kalibráció első lépése.

Szín kalibráció

 

A színek beállítására két módszer is van. Bármelyiket alkalmazhatjuk, de a kettőt együtt nem. A kalibrációhoz két előnézeti ablakot kell definiálnunk. Az egyiket fekete (háttér), a másikat fehér referenciaként. Csillagászati képeken a fehér referencia általában egy G2V csillag.

A két ablakot akár átfedéssel is létrehozhatjuk, a Structure Detection biztosítja, hogy csak a csillagok kerüljenek felhasználásra.

A másik módszer a kép koordinátái alapján végez keresést központi adatbázisokban, majd az ott talált G2V csillagok alapján végzi a szín-kalibrációt. Ez utóbbi módszer – bár tudományos alapokon nyugszik – sokszor nem ad jobb eredményt az előzőnél. Érdemes mindkettőt kipróbálni és a számunkra megfelelő eredményét elfogadni. Ehhez a módszerhez nem kell előnézeti ablak, viszont a kép legyen háttér-semlegesített.

A zöldes színeződés eltávolítása

A zöldes színeződés viszonylag gyakori a DSLR gépekkel készült felvételeken, ami általában a két zöld pixelnek tulajdonítható. Ha helyes volt a szín kalibráció és megfelelő a lép jel/zaj viszonya is, akkor ez a jelenség igen ritkán lép csak fel. Ha mégis ilyen jelenség lépne fel - akkor még mindenképpen a lineáris szakaszban - a következőképpen tudjuk azt eltüntetni.

LRGB képek készítése

Az LRGB kép elkészítéshez mind az L, mind pedig az RGB képnek már nem-lineárisnak kell lenniük!

Zajcsökkentés

A képeinket szennyező, pixel szintű zajt főként a kiolvasó elektronika, a chip sötét árama és az égbolt zaja hozza létre. Ennek csökkentésére használt legjobb matematikai módszer az ún. wavelet módszer. Ez a módszer különböző méretű pixel-struktúrákat rendel az egyes wavelet rétegekhez, és ezekben más-más mérvű (aggresszivitású) zajcsökkentést végez. Erre az egyik leggyakrabban használt PI program a MultiscaleLinearTransform. Alapértelmezésben a rétegek (Layer) egytől négyig számozottak, míg az utolsó réteg neve R. A nevek mellett a méret (Scale) szerepel. Az első réteg az 1 pixelnyi struktúráknak, a második a 2, a harmadik a 4, a negyedik pedig a 8 pixel méretűeknek felel meg. Az R a maradékot (Rest/Residual) reprezentálja, azokat, amit az előző 4 nem fed le. A programnak a Layers legördülő menü segítségével mondhatjuk meg, hogy hány réteggel szeretnénk dolgozni. Pl. ha 6 réteget választunk ki, egészen 32 pixel méretig tudunk a zajcsökkentéshez paramétereket megadni. Amennyiben egy adott méretű pixel-struktúrát teljesen törölni kívánunk, elegendő, ha a megfelelő réteget „kikapcsolunk”. Ehhez kattintsunk a Detail Layer kijelölő négyzetére, vagy magára rétegre (egy piros x jelenik meg a Layer oszlopban).

A zaj legtöbb esetben az első rétegben van, a mérete 1 pixeles. A magasabb rétegek – ahogy haladunk felfelé - szintén érintettek, de csak kisebb mértékben. Tehát a zajcsökkentés úgy működik a legjobban, ha a beavatkozás mértékét is csökkentjük a magasabb rétegekben.

Először készítsünk egy maszkot, szürkeárnyalatos kép esetén az eredeti duplikálásával, színes esetén a Lightness réteg felhasználásával (Extract CIE L*), majd stretch-eljük azt az auto-stretch paramétereket használva, ezzel létrehozva egy nem-lineáris maszkot. Ezután alkalmazzuk a maszkot a képre és invertáljuk azt (az invertálásra azért van szükség, hogy a program a sötétebb részeken erősebben tudjon módosításokat végezni).

A zajcsökkentéshez válasszuk ki azt a réteget, amelyikkel dolgozni szeretnénk, majd engedélyezzük a Noise Reduction opciót. Mivel az első rétegben markánsabb a zaj jelenléte, mint a másodikban, a másodiké pedig több a harmadikhoz képest, az egyes rétegekben (ahogy haladunk felfelé) egyre csökkenő agresszivitással hajtsuk végre a zajcsökkentést. A Noise Reduction alatt található értékek jelentése a következő:

A következő értékek általában jó eredményt szolgáltatnak:

Réteg Threshold Amount Iterations
1 3.0 0.5 3
2 2.0 0.5 2
3 1.0 0.5 1
4 0.5 0.5 1

Természetesen a fenti értékek nem biztos, hogy minden képen jó eredményt adnak, ezért célszerű kísérletezni. Pl. az első réteg értékeit agresszívebbre venni (4.0, 0.5, 4), miközben a többi réteg értékeihez nem nyúlunk. Az értékek megváltoztatása nélkül, többször is alkalmazhatjuk a programot a képre. Arra figyeljünk, hogy az Amount értékét tartsuk 1.0 alatt, hogy egy jó keveréket kapjunk. A cél egy jó zajcsökkentés, nem pedig egy agresszív zaj eltávolítás (ami a képen kis fekete lyukak formájában jelenik meg).

A program nagyon rugalmas és egyformán jól működik lineáris és nem-lineáris képeken is, de célszerű azt még a lineáris szakaszban használni, mivel így növelhető a kép jel/zaj viszonya. Ha utána is használjuk, csak nagyon kismértékben alkalmazzuk (és természetesen egy másik maszkkal).

Egy végső megjegyzés azok számára, akik színes képen alkalmazzák. A program alkalmazható a színes képre (RGB/K components), vagy külön a Lightness (ilyenkor a kép monokróm világosságát változtatjuk), illetve a Chrominance csatornára (ilyenkor a kép szín-eloszlásában csökkentjük a zajt) is. Ezt a dialógus alján található Target menüben választhatjuk ki.

Természetesen a PI-ben nem csak egyfajta zajcsökkentő módszer létezik. A másik, ugyanezen célra használt program a TGVDenoise (TGV) program. A program mind az RGB/K, mind a CIE L*a*b* színtérben működik, de a Lab mód lehetőséget ad a világosság és a színesség zajának különálló kezelésére is. A PI-ben kétféle „fényesség” van. Az egyik a a Lab L csatornája a másik az Y/cb/cr Y csatornája. Bár ezek algoritmikusan mást jelentenek és az adatokban van is egy nagyon kis különbség, alapjában véve mindkettő a kép szürkeárnyalatos pixel-intenzitásait reprezentálja. Ennek analógiájára az a*b* és a cb/cr a színeket tartalmazó kép.

A programnak szüksége lesz egy referencia képre (Local support), amely megmutatja, hogy hol a legfontosabb a zaj-csökkentés (ez általában a háttér). Ehhez a kép világosság csatornájára van szükségünk, amit az eszközsor Extract CIE L* gombjára kattintva kapunk meg. Ha monokróm képpel dolgozunk egyszerűen csak duplikáljuk le az eredeti képet. Amint ez megvan nevezzük át „Lum_maszk”-ra és alkalmazzunk rá egy alapbeállításos STF-et, majd azt a HT-re húzva alkalmazzuk azt véglegesen a képre is (ahol a mask értéke 1.0, ott 100% védelmet ad, ahol 0.0 ott 0%-ot). Nyissuk ki a Local Support panelt és válasszuk ki az imént készített (már nem-lineáris) Lum_mask-ot Support image-ként. Az összes többi beállítást hagyjuk alapértelmezett értéken. Mivel a képet nem akarjuk már tovább stretch-elni, vagy vágni, nem kell a Midtones, Shadows és Highlights csúszkák értékeihez sem nyúlnunk. A Noise reduction értékét is hagyjuk nullán.

Ezt követően állítsuk be az Edge protection értékét. Szerencsére ezt a kép alapján meg tudjuk tenni. Jelöljünk ki egy előnézetni ablakot úgy, hogy az csak a hátteret tartalmazza (ködösség és csillagok nélkül). Nem kell nagynak lennie. Nyissuk meg a Statistics processzt és válasszuk ki a dialógus tetején az imént kijelölt előnézeti ablakot. Mivel a statisztika ablak alapértelmezésben nem írja ki a most számunkra fontos „standard deviation” értéket, nyomjuk meg a dialógus jobb felső sarkában található villáskulcs ikont, válaszuk ki a Standard deviation-t, majd az OK gombra kattintva érvényesítsük azt. Fontos, hogy a statisztika ablak által visszajelzett értékek ún. normalizált – [0, 1] intervallumban értelmezett - értékek legyenek, nem pedig a 16 bites 0 – 65535 tartományúak. Ehhez a dialógus bal felső részén található roló-menüben válasszuk ki a Normalized real [0, 1] értéket. A számított stdDev értéket ezután egyszerűen írjuk át a TGVDenoise ablak Edge protection mezejébe. Ezt követően bezárhatjuk a statisztika ablakot és törölhetjük az előnézeti ablakot is.

A zajcsökkentő algoritmusok a legtöbb esetben iteratívak és jellemzően van egy pont, ami után az eredmény már nem lesz jobb. A TGV esetén ez 500 körül van, de a kezdetben – a kísérletezés felgyorsításához - használjunk alacsonyabb értéket (pl 100). Mivel az alapértelmezett paraméterek nem-lineáris képre vannak beállítva és a mi képünk még lineáris, valószínű, hogy a Strength és Smoothness aktuális értékeivel végrehajtott zajcsökkentés túlságosan agresszív lesz. Ehhez a fenti két értéket állítgatva kell egy jó beállítást elérnünk.

Az eljárás felgyorsításához célszerű előnézeteket létrehoznunk. Ezeket a következő területeken hozzuk létre:

Célszerű 5-7 előnézetet létrehozni a teszteléshez. A tesztelést úgy végezzünk, hogy a TGV dialógus bal alsó sarkában lévő kis háromszöggel az aktuális beállításokat ráhúzzuk az egyes előnézetekre és megnézzünk az eredményt. Az előnézetek alkalmazása több szempontból is hatékony. Az első, hogy mivel nem a teljes képen, hanem egy sokkal kisebb képen végezzük el a műveletet, az igen gyorsan hajtódik végre. A másik, hogy CTRL+SHIFT+Z gomb segítségével gyorsan váltogathatunk a művelet végrehajtása előtti és utáni állapotok között. Ezzel azonnal ellenőrizhetjük, hogy a művelet a kívánt irányba módosította-e képünket. Egy-egy beállítás után az összes előnézeti képre alkalmazzuk azt és ellenőrizzük, hogy a zajcsökkentés megfelelő mértékű volt-e, miközben a részletek nem tűntek el.

A zajcsökkentést kezdjük azzal, hogy csökkentjük a Strength értékét legalább egy teljes exponens értékkel. Itt mindaddig változtassuk magát az értéket és annak kitevőjét, amíg a kívánt eredményt nem látjuk. Egy idő után azt fogjuk látni, hogy a Strength értékének csökkentésével pl a ködösségek részletei kezdenek eltűnni, miközben egyre kevesebb zajcsökkentés megy végbe. Ekkor – a részletek megtartása miatt – a Smoothness értékét kell majd csökkentenünk. Természetesen a kísérletezés során, mind az értékeket, mind a kitevőket változtassuk. Például célszerű először az értéket növelni és a kitevőt egyel csökkenteni (a tényleges érték még mindig alacsonyabb lesz az előzőnél, mivel a kitevőt is csökkentettük).

Miután úgy ítéltük meg, hogy a beállított paraméterek megfelelőek, az Iterations értékét állítsuk át 500-ra. Ezzel a beállítással még egyszer végezzünk egy utolsó tesztet az összes előnézeti képen. Ha mindent megfelelőnek találtunk, alkalmazzuk a beállításokat a fő képünkre is. Miután kiléptünk a TGVDenoise alkalmazásból törölhetjük a Local support -nál alkalmazott maszkot is.

Ha a képet ezután átalakítjuk nem-lineárissá sok esetben láthatunk azon zaj foltokat. Ezek megjelenése azt jelenti, hogy a zajcsökkentést kissé agresszív paraméterekkel végeztük. Ennek eltüntetésére használjuk az ACDNR programot.

A TGVDenoise program kiválóan működik nem-lineáris képeken is (illetve ahogy azt már említettem az alapértelmezett értékek kifejezetten erre vannak beállítva).

A csillagok méretének csökkentése

Ezt a programot általában az LRGBCombine után használjuk, tehát a képünk már nem lineáris. Ahhoz, hogy a csillagok körül kontúr-maszkot tudjunk készíteni a kép fényességét ki kell egyenlíteni. Erre azért van szükség, hogy a StarMask program könnyebben megtalálja a csillagokat, azok egymáshoz viszonyított világosságától függetlenül.

A maszk megjelenése után bezárhatjuk a StarMask programot, valamint a másolat képet is. Alkalmazzuk a maszkot az eredeti képünkre és rejtsük is el azt (mivel a piros maszk miatt nem látjuk majd a csillagméret csökkentés hatását).

Ha elégedettek vagyunk az eredménnyel zárjuk be a programot és a csillag-kontúr maszkot is (elmentés nélkül). Fontos megjegyezni, hogy amennyiben újra alkalmazni akarjuk az eljárást, a kontúr-maszkot is újra kell „gyártanunk”, mivel a csillagok a képen már kisebbek, ezáltal a kontúrjuk is. Ha egy kicsit agresszívabbak akarunk lenni, az Iterations értékét növelhetjük vagy a Selection-t csökkenthetjük, de az Amount értékét hagyjuk 0.75-ön.


Revision #15
Created 18 January 2021 23:07:15 by Tóth Gábor
Updated 13 June 2021 20:43:40 by Tóth Gábor