HaloStackPanu Lahtinen (pnuu a iki fi) Same in English in here. Sisältö:HaloStack on yksinkertainen, käyttöjärjestelmäriippumaton Python-ohjelma kuvien pinoamista varten. Ohjelma on suunnattu lähinnä halokuvien pinoamiseen, ja se on toistaiseksi vain komentoriviohjelma. Graafinen käyttöliittymä on tulossa, joskus. Ohjelmaan on toteutettu yksinkertainen kohdistusmenetelmä, joka toimii parhaiten jos halokuvat on otettu käyttäen tummaa peittäjää, jonka läpi Aurinko vielä kuitenkin näkyy. Pinoaminen toimii myös muiden jalustalta otettujen kanssa suhteellisen hyvin, mutta laskenta hidastuu kohdistuspisteen suuremman koon takia. Ohjelma tallentaa kuvat PNG-muodossa. Keskiarvopinot tallennetaan 16-bittiä/kanava sisältävinä riippumatta siitä ovatko lähtökuvat olleet 8-bittisiä (kuten JPG), tai suuremman bittisyvyyden omaavia (kameroiden raakaformaatin kuvat tai 16-bittiset TIFF-kuvat). Muut pinot tallennetaan samalla bittisyvyydellä kuin alkuperäiset kuvat. Perusominaisuuksien käyttämiseksi tarvitaan Python-ohjelmointikielen tulkki, johon on asennettu Numpy- ja PythonMagick-kirjastot. Tiettyjen lisäominaisuuksien käyttämiseksi tarvitaan lisäksi:
AsennusUbuntuAsennus tapahtuu purkamalla skriptit alla olevasta paketista sopivaan hakemistoon. Skriptin voi ajaa suoraan ilman python -komentoa skriptin edessä, kunhan tiedosto löytyy ohjelmapolusta (esim. kotihakemostossa oleva bin-hakemisto). Katso käyttöesimerkkejä alempaa.Lataa HaloStack v0.1.2 Python-skriptit tästä .tar.gz tai .zip. Avaa terminaali, ja kopioi alla oleva komento asentaaksesi tarvittavat paketit:sudo apt-get install python python-numpy python-pythonmagick ufraw python-h5py python-scipy WindowsWindows-käyttäjille on kaksi vaihtoehtoa. Joko käyttää yhteen pakettiin kasattua settiä, tai lataa alla olevat riippuvuudet. Suosittelen ensimmäistä vaihtoehtoa, jos et itse ole tekemässä muutoksia koodiin. Lataa HaloStack 0.1.2 Windowsille: 32-bit, 64-bit Vaihtoehtoiseen Windows-asennukseen tarvittavat paketit (näitä ei tarvita yo. version kanssa!):
TODO-listaAlla listatut ominaisuudet ovat suunnitelmissa, mutta ne eivät ole vielä valmiita.
Komentoriviparametrit-a FILE, --average-stack FILE
Laskee keskiarvopinonen ja tallentaa tuloskuvan 16-bit/kanava
PNG-kuvana tiedostoon FILE (esim. keskiarvo.png).
-m FILE, --max-intensity-stack FILE
Jokaiseen pikseliin valitaan pinosta ko. kohdassa oleva pikseli,
jossa värikanavien yhteiskirkkaus on suurin (R+G+B saa suurimman
arvon). Kuva tallennetaan tiedostonimellä FILE (esim. maksimi.png)
samalla värisyvyydellä (8- tai 16-bit/kanava) kuin lähtökuvat.
-M FILE, --max-deviation-stack FILE
Jokaiseen pikseliin valitaan pinosta ko. kohdassa oleva pikseli,
jossa värikanavien keskihajonta on suurin. Kuva tallennetaan
tiedostonimellä FILE (esim. suurin_varihajonta.png) samalla
värisyvyydellä (8- tai 16-bit/kanava) kuin lähtökuvat.
-c FILE, --max-color-diff FILE
Jokaiseen pikseliin valitaan ko. kohdassa oleva pikseli, jossa
kirkkaimman ja himmeimmän värikanavan erotus on mahdollisimman
suuri, eli max(R,G,B) - min(R,G,B) saa suurimman arvon. Kuva
tallennetaan tiedostonimellä FILE (esim. suurin_variero.png)
samalla värisyvyydellä (8- tai 16-bit/kanava) kuin lähtökuvat.
-e FILE, --median FILE
Jokaiseen pikseliin lasketaan ko. kohdassa olevien pikselien
mediaani. Suurella kuvamäärällä tämä operaatio on hyvin hidas, ja
vaatii todella paljon kiintolevyn käyttöä. Kuva tallennetaan
tiedostonimellä FILE (esim. mediaani.png) samalla värisyvyydellä
(8- tai 16-bit/kanava) kuin lähtökuvat.
-u R,A[,S[,T]], --pre-usm R,A[,S[,T]]
Ennen pinoamista kuvia terävöitetään epäterävällä maskilla (USM,
Unsharp Mask).
R - maskin säde pikseleinä, esim. 40
A - terävöityksen määrä, esim. 2.5 (Photoshopissa 250 %)
S - sigma, maskin säteen suuntainen painotuskerroin, esim. 20.
Valinnainen. Jos arvoa ei anneta, käytetään arvoa R/2.
T - kynnysarvo, Vain pikselit joiden kirkkaus on suurempi kuin annettu
luku huomioidaan terävöityksessä. Valinnainen.
-U R,A[,S[,T]], --post-usm R,A[,S[,T]]
Ennen tallennusta valmiit pinot terävöitetään epäterävällä
maskilla (USM, Unsharp Mask). Katso parametrien määrittelyt yltä.
-b FILE, --base-image FILE
Kuvaa FILE käytetään pinon vertailukohtana kohdistettaessa ja
kuvienvälisen kirkkauden yhtenäistämisessä. Jos tiedostoa ei
anneta, kuvasarjan ensimmäinen kuva toimii vertailukohtana.
-r x,y,s, --align-reference x,y,s
Kohdista kuvat etsimällä jokaisesta kuvasta annettua
vertailukohtaa parhaiten vastaava piste. Vertailualue määritellään
antamalla paikan keskipiste (x,y) sekä alueen määrittävän neliön
sivu, jonka sivunpituus on annetusta luvusta laskettuna
2s+1. Pikselikoordinaattien nollakohta (0,0) on kuvan vasemmassa
ylänurkassa. Vertailudatana käytetään (ilman lisämäärittelyjä)
kuvasarjan ensimmäisestä kuvasta ko. alueelta saatuja pikseleitä.
Paras sovitus määritetään etsimällä pienin arvo pikselien
erotuksen neliölle. Vertailukuvan voi määrittää vapaasti -b
-valinnalla.
-s x1,y1,x2,y2, --align-search-area x1,y1,x2,y2
Kuvien kohdistamista voi nopeuttaa määrittelemällä alueen, jolla
kohdistuspiste sijaitsee kaikissa kuvissa. Alueen määrittämiseksi
syötetään alueen vasen ylänurkka (x1,y1) sekä oikea alanurkka
(x2,y2). Pikselikoordinaattien nollakohta (0,0) on kuvan
vasemmassa ylänurkassa.
-n NUM, --normalize NUM
Yhtenäistetään kuvien keskinäinen kirkkaus ennen pinoamista. Luku
NUM määrittää tason johon kuvien keskimääräinen kirkkaus
säädetään. Jos NUM on nolla, käytetään ensimmäisen kuvan (tai -b
-valinnalla osoitetun kuvan) keskimääräistä kirkkautta
vertailukohtana.
-N x1,y1,x2,y2, --normalize-area x1,y1,x2,y2
Määritä kuvien välisen normalisaation laskemiseen käytettävä
alue. Alue rajataan antamalla alueen vasemman ylänurkan (x1,y1) ja
oikean alanurkan (x2,y2) pikselikoordinaatit. Koordinaattien
nollakohta (0,0) on kuvan vasemmassa ylänurkassa.
-t NUM, --correlation-threshold NUM
Tällä vivulla voit määrittää pienimmän korrelaatiokertoimen (R^2),
jolla kohdistetut kuvat vielä hyväksytään mukaan
pinottaviksi. Korrelaatiokertoimen arvo on välillä 0.0 - 1.0,
jossa 1.0 on täydellinen yhteneväisyys. Oletuksena kaikki kuvat
hyväksytään mukaan pinottavaksi (eli -t 0.0).
-R X1,Y2,X2,Y2,S, --rotate-points=X1,Y2,X2,Y2,S
Määrittämällä kaksi kohdistuspistettä, (X1,Y1) ja (X2,Y2),
horisontista sekä näissä kohdissa olevien neliöiden (joiden koot
ovat 2*S+1 x 2*S+1 pikseliä) kuvien kiertymä voidaan korjata.
Pikselikoordinaattien nollakohta on kuvan vasemmassa ylänurkassa.
-O STR, --output-images STR
Tallenna yksittäiset kuvasarjan kuvat PNG-kuvina. Kuvien nimien
loppuun lisätään STR (esim. -O kohdistettu ->
IMG_1234_kohdistettu.png). Näiden kuvien avulla
uudelleenpinoaminen on paljon nopeampaa kuin raakakuvista pinojen
laskeminen. Koska kuvat tallennetaan kohdistamisen jälkeen, näistä
kuvista voi tarkistaa kohdistuksen onnistuminen, ja tarvittaessa
hienosäätää erillisellä kuvankäsittelyohjelmalla.
KäyttöesimerkkejäAlla olevat esimerkkikomennot olettavat erillisen Python-tulkin käyttämistä. Jos käytössäsi on Windowsia varten tehty paketoitu versio, korvaa komennoissa "python halostack.py" pelkällä komennolla "halostack". Linuxissa voi käyttää myöskin pelkkää "halostack.py" komentoa ilman erillistä Python-tulkin kutsua.
TestimateriaaliaTässä tarjolla esimerkkikuvia, joilla pinoamista voi kokeilla.
|