“First, solve the problem. Then, write the code.” John Johnson
Muzika uz post: Alex Warren – Eternity

Kod planetarne astrofotografije rezultat jedne noći je često desetine slaganih snimaka (iz AutoStakkert!-a, PiPP-a, RegiStax-a i sličnih programa). Planeta je na svakom snimku na drugom mjestu, a veličine kadrova se razlikuju. Za animacije rotacije, poređenje serija, mozaike ili RGB kombinaciju kanala snimljenih kroz filtere sve slike trebaju biti iste veličine, s planetom tačno u centru. Ručno je to sporo i neprecizno, pa sam napravio mali program koji to radi automatski.
Šta program radi?
CropPlaneta je jednostavan Windows program s grafičkim interfejsom i dvije funkcije, svaka u svom tabu:
- Crop + grayscale (cijeli folder): sve TIFF slike iz foldera centrira, kropuje na istu veličinu i, po želji, pretvara u grayscale.
- RGB kombinacija: spaja tri mono kanala (R, G, B) u jednu sliku u boji, kao Merge Channels u Photoshopu ili LRGBCombination u PixInsightu.
Princip rada: detekcija i centriranje planete
Za svaku sliku program prolazi kroz nekoliko koraka:
- “Zaglađivanje”: slika se blago “zagladi” Gaussovim filterom (σ = 2 px), da šum ne utiče na detekciju.
- Prag: program automatski odredi prag koji najbolje odvaja svijetli objekt od tamne pozadine, tj. maksimizira varijansu između te dvije klase piksela. Prag ne može biti niži od 10 % raspona između pozadine (medijana) i maksimuma. Prag se može ručno pomjeriti parametrom osjetljivost praga: ispod 1 obuhvata slabije detalje (npr. prstenove), iznad 1 samo najsvjetlije dijelove.
- Najveći objekt: od svih svijetlih područja zadržava se samo najveće. To je planeta, kod Saturna zajedno s prstenovima. Mjeseci i vruće tačke se tako ignorišu, a rupe unutar objekta se popune.
- Centar: za centar se uzima sredina okvira (bounding box) objekta. To je stabilnije od težišta svjetline kad je osvjetljenje nejednako, npr. kod jače osvijetljenog dijela prstena.
- Zajednička veličina: program pronađe najveći objekt u cijeloj seriji i pomnoži njegovu dimenziju marginom (default 1,3). Tako dobije kvadratni kadar u koji staje svaka slika. Veličina se može zadati i ručno, u pikselima.
- Crop: iz svake slike se izreže kvadrat oko centra planete. Ako isječak izlazi van originalnog kadra, nedostajući dio se popuni crnom pozadinom.
Grayscale konverzija
Po izboru, slike u boji se pretvaraju u mono. Dostupne metode su:
- luminancija po standardu Rec.709 (0,2126 R + 0,7152 G + 0,0722 B), koja je default;
- luminancija po Rec.601;
- običan prosjek kanala;
- izdvajanje samo jednog kanala (R, G ili B). Korisno je npr. kad je jedan kanal izrazito oštriji ili za IR-pass snimke s kolor kamerom.
Bit-dubina se čuva: 8-bitni ulaz daje 8-bitni izlaz, 16-bitni daje 16-bitni, a podaci se ne razvlače i ne komprimuju.
RGB kombinacija
Ovaj modul je namijenjen snimanju mono kamerom kroz R, G i B filtere.
- Normalizacija bit-dubine: svaki kanal se prvo svede na opseg 0–1 prema svom tipu podataka. Zato se ispravno kombinuju i kanali različite bit-dubine, npr. 8-bitni i 16-bitni.
- Čisto slaganje (default): kanali se samo slažu u RGB sliku, bez pomjeranja. Rezultat je identičan onom iz PixInsighta ili Photoshopa, a podatak ostaje linearan za daljnju obradu.
- Težine kanala: svaki kanal se može pomnožiti faktorom (npr. 1,0 / 0,9 / 1,2) radi grubog balansa bijele.
- Opciono centriranje: za kanale koji još nisu kropovani, planeta se u svakom kanalu centrira po težištu intenziteta, sa subpikselnom korekcijom.
- Opciono fino poravnanje: R i B kanal se subpikselno poravnavaju na G, koji obično ima najbolji odnos signal/šum. Pomak se računa kros-korelacijom “zaglađenih” slika preko FFT-a. Položaj vrha korelacije se precizira paraboličnom interpolacijom, a kanal se pomjera bilinearnom interpolacijom. Pomaci veći od 8 px se odbacuju kao nepouzdani, a pomaci manji od 0,15 px se ignorišu. Ovo korigira i atmosfersku disperziju, kad je planeta nisko nad horizontom.
- Opciono izjednačavanje kanala: kanali se skaliraju tako da im se 99,9. percentil svjetline poklopi.
Izlazi iz programa
- Tab 1: serija TIFF slika istih dimenzija (kvadrat), s planetom u centru. Mono ili u boji, u originalnoj bit-dubini. Imena se čuvaju, uz izborni sufiks (npr.
_crop), a slike idu u izabrani folder (defaultcrop/). - Tab 2: jedna RGB TIFF slika, 16-bitna ili 32-bitna float.
- Log: za svaku sliku se ispisuje detektovani centar i veličina objekta, a kod RGB kombinacije i statistika kanala (min, medijan, max) te izmjereni pomaci.
Gdje se uklapa u workflow?
Program se koristi nakon slaganja (AutoStakkert!) i izoštravanja (RegiStax / wavelets), a prije:
- izrade animacija rotacije (GIF/MP4),
- derotacije u WinJUPOS-u,
- RGB kombinacije i finalne obrade u PixInsightu ili Photoshopu,
- poređenja snimaka iz različitih noći ili sa različitom opremom.
Tehnički detalji
Program je napisan (uz pomoć Claude Opus) u Pythonu i koristi biblioteke NumPy, SciPy (ndimage) i tifffile. Interfejs je u Tkinteru, a standalone .exe je spakovan PyInstallerom, pa za pokretanje nije potreban instaliran Python. Obrada je potpuno lokalna, bez ikakve veze s internetom.
Ograničenja
- Program podrazumijeva jedan dominantan svijetli objekt na tamnoj pozadini. Kod jakog gradijenta pozadine ili planete koja ispunjava skoro cijeli kadar, prag treba ručno podesiti.
- Ne radi derotaciju niti poravnanje detalja unutar diska. Centriranje je po obrisu planete, ne po površinskim detaljima.
- Podržan je samo TIFF format, za sada.
Dole je dat primjer obrade za snimak Saturna, pojedinačni (nejednake geometrije) kanali R, G i B, te konačna slika sa RGB kombinacijom (bez dodatnih obrada).


