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.
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.
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).
É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…).
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.
-
- Light-kép (objektum kép) – a képalkotó távcsőhöz rögzített fényképezőgéppel (CCD szenzorral), az objektumról készült felvétel.
- Dark-kép – az objektumképpel megegyező ISO értékkel, expozíciós idővel, azonos hőmérsékleten készült kép. Készítésekor az optikai út teljesen zárt (sötét) kell, hogy legyen.
- Bias-kép – az objektum képpel megegyező ISO értékkel és azonos hőmérsékleten készült kép. A képkészítéskor az optikai út teljesen zárt (sötét) kell, hogy legyen, az expozíciós idő a kamera által megengedett legrövidebb érték. A Dark-képek és a Bias-képek a kamera különböző zajforrásait hivatottak kiküszöbölni.
- Flat-field kép – egyenletesen megvilágított háttérről (naplemente előtti égbolt vagy „fénydoboz”) készült felvétel, amelyet a képalkotó távcső optikai út hibáinak, a vignettálódás (sötétedés a kép szélein) hatásainak, valamint a képalkotó chip nem egyenlő érzékenységéből eredő hibák kiszűrésére használunk. Ezt a képet a kamera legalacsonyabb ISO értékével kell készíteni.
- Flat-dark-kép – a Flat-field képpel megegyező ISO értékkel, expozíciós idővel és hőmérsékleten készült sötét kép.
- CFA (Color Filter Array) – a képalkotó chip érzékelői (pixelek) előtt elhelyezett színszűrő mátrix, amely lehetővé teszi, hogy a fényképezőgép egyetlen expozíció segítségével színes képet tudjon készíteni. Ez azt is jelenti, hogy az érzékelő egy-egy pixele csak egy adott színt rögzít. A színes felvétel a szomszédos pixelek értékeivel történő interpolálás után alakul csak ki. A szűrők tömbjét nevezzük CFA-nak, amely a chip bal felső sarkától indulóan a következőképpen néz ki:
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:
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:
Tudunk kell, hogy a Flat képek is a Light-okhoz hasonló hibákkal terheltek, tehát:
Ha mindezt a (2)-es egyenletbe helyettesítjük, akkor az alábbi általános képlethez jutunk:
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:
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.
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.
Ekkor a képünk végérvényesen nem-lineárissá válik.