Pinoaminen...

Aloittaja Pete, 03.05.2009, 02:08:23

« edellinen - seuraava »

Pete

Moro
Tuli mieleen tämmönen kysymys!
Mitä saataisiin aikaan jos vaikka onnistuis n. 10min todella hyvä laatuinen valotus jostain himmeämmästä
kohteesta ja tehtäisiin kyseisestä valotuksesta vaikkapa 20 kpl kopioita ja pinottaisiin ne??
Olisiko mitään käytännön juttuja tai esteitä moiselle toimenpiteelle?
Eli onnistuisiko moinen tekaisu ja saisi todella hyvän kuvan?


Pete
Petri Hynninen
EQ-6 PRO SynScan + gps/ EQ-6 / EQ-5 SynScan / EQ-5
C-11 SCT/ SW-200/1000 / vixen VMC 110L / Cel ED 80/600 /
Sony a 200 DSRL / Canon PS A590IS / Medion 4Mp / Epson 650 1,1Mp / OSS Guider/ OSS DSCI II

-Jarz-

Tuolla kysyttiin samaa asiaa. Lyhyesti tähän että ei onnistu.

http://foorumi.avaruus.fi/index.php?topic=1925.msg29400#msg29400

JM
Jari
CPC 800 XLT - Skylux 70/700 - Pentax K10D - QHY5 - Atik 314L+

GaryP

Pete,
Mikäs sinua estää kokeilemasta asiaa? Sillähän sen vastauksen saat, ja voit sitten esitellä meille muillekin lopputuloksen.

Eikös logiikka kuitenkin jo sano, että kaksi samanlaista kuvaa päällekkäin, pikseli kerrallaan vertailtuna, eroja etsien, ei tuota mitään uutta informaatiota? Jokaisen pikselivertailun kohdalla lopputulos on aina yhtäsuuri. Jos taas ajattelit että 20 kappaletta yhtä kuvaa antaisi lisää valoa, voithan tehdän sen yhdelläkin kuvalla ja muokata ihan vapaasti parametrejä, lisätä eri värien osuutta portaattomasti, kontrastia, gammakorjausta... viimeinen varmaan lähinnä se haluttu efekti.

Rohkeasti vaan kokeilemaan, siitä saa arvokasta oppia.
:azn:

Kari
Kari Pulkkinen
Espoo, Finland

Harrastus uudelleen lämpiämässä...

PetriKe

Tässä tietyin osin yleistettynä:

Avainasia tässä on signaalin ja kohinan välinen suhde. Kohinaa esiintyy erityisesti kuvan himmeämmissä osissa ja kohina on siis informaation epävarmuus. Yksittäisessä esim. 10 minuutin valotuksessa tähdet näkyvät hyvin ja niiden kohdalla signaali/kohina-suhde on korkea (=hyvä asia). Himmeämmät galaksit ja sumut taas ovat kovin rakeisia, koska kohteen valo ei erottaudu vielä kunnolla kameran elektroniikan aiheutaman kohinan seasta. Jos yhtä kuvaa monistetaan ja pinotaan, mikään ei muutu. Kohina on edelleen kohinaa.

Koska fotonien virta ei ole tasaista vaan satunnaista (aivan kuin vesisade), niin jokainen 10 minuutin valotus samasta kohteesta on hiukan erilainen. Nyt kun näitä erillisiä otoksia pinotaan, muodostuu jokaiselle pikselille pinoamistavasta riippuen kaikkien kuvien informaatiosta keskiarvo, mediaani tms. Mitä enemmän erillisiä kuvia, sitä paremmin kohteesta säteillyt vähäinenkin fotonivirta alkaa erottautumaan kohinasta ja pikselit edustavat 'todellista' informaatiota. Kuvan rakeisuus (=kohina) vähenee (koska todellinen tähtitaivas ei ole rakeinen) ja kontrasti paranee sekä signaali/kohina-suhde paranee.

Pinoamisessa kaikkihan perustuu puhtaasti matematiikkaan, koska jokaisella pikselillä on joku numeerinen arvo ja näitä arvoja sitten summataan ja lasketaan keskiarvoja tai muita matemaattisia funktioita.

Selkeitä kelejä,

Petri Kehusmaa

Lauri Kangas

Tulee monta erilaista vastausta samaan kysymykseen. Laitan vielä omaan kiteytykseni.

Pinoaminen on käytännössä keskiarvon laskemista. Jos kuva kopioidaan ja niistä keskenään samanlaisista kopioista lasketaan keskiarvo, saadaan lopputulokseksi sama alkuperäinen kuva.

tomipa

Pinon keskiarvoistaminen parantaa signaali-kohinsuhdetta yksittäiseen kuvaan verrattuna. Kuvasignaali on yleensä hitaammin muuttava kuvan poikki kuljettaessa kuin kuvaan summautunut kohina.

Esteettisesti kuvaa voisi parantaa, jos pinoon otetaan mukaan naapuripikseleitä. Kuvan pyöristymistä voidaan välttää, kun joukkoon hyväksytään vain ne naapuripikselit (vahvennettu), joiden arvo on keskiarvoistettavan pikselin pinokeskihajonnan sisällä. Esimerkissä keskiarvo lasketaan neljän kuvan pinosta, mutta keskihajontakriteerillä otetaan mukaan lisäksi yksitoista naapuripikseliä ja poistetaan yksi keskipikseli.

K(:,:,1) =
   148   125  216
   122   205   193
   167   204   238

K (:,:,2) =
   138   111   223
   135   204   195
   151   250   198

K (:,:,3) =
   137   127   216
   125   223  214
   151   219   226

K (:,:,4) =
   124   157   210
   113   243   234
   131   236   214

Pinon keskipikselille:
mean(K(2,2,:),3) = 219
std(K(2,2,:),3) =18

Uuteen keskiarvoon lasketaan K2 = 211 <= K <= 237
mean(K2) = 218
Tomi Parviainen

vehnae

Kuvaamasi prosessi on käytännössä jonkunlaista älyä sisältävää kohinanpoistoa, mikä kannattaa tehdä vasta lopulliselle pinolle.

tomipa

Lisäsin testikuvaan (vasemmalla oikea alakolmio) satunnaista kohinaa (vasemmalla vasen yläkolmio). Alkuperäisen kuvan kohinan keskihajonta on 4 ja lisätyn kohinan keskihajonta 24, yhteensä 28. Oikealla (vasen yläkolmio) on neljän kuvan pinon keskiarvo, jonka kohinan keskihajonta on 14. Oikealla (oikea alakolmio) on algoritmin (kriteeri = 2) tuottama kuva, jonka kohinan keskihajonta on 7.

Ainakin omaan silmään testin tulos on tyydyttävä, mutta näitä "älykkäitä" kohinanpoistoalgoritmeja lienee lukuisia valmiina. Windows 10:n suurennustoiminto, jos sillä kuvaa tarkastelee, taitaa pehmentää kuvaa.
Tomi Parviainen

tomipa

Poissonin kohina on fotonikohinaa. Se aiheuttaa kuvaan rakeisuutta, koska kuvasta jää puuttumaan informaatiota. Syntyy naapureitaan pienemmän arvon omaavia pikseleitä. Poissonin kohinaa voidaan pienentää keskiarvottamalla useita pinottuja kuvia.

Toinen tapa on lisätä koostekuvaan vain sitä isommat tai pienemmät pikseliarvot. Ohessa yläkuva on koostettu siten, että idx = Iout > Iin, Iout(idx) = Iin(idx), jossa siis koostekuva on Iout ja pinoon lisätty kuva on Iin. Tässä siis otetaan huomioon minimiarvot. Alakuvassa puolestaan idx = Iout < Iin eli huomioidaan maksimiarvot.

Kuvia ei ole kohdistettu, joten toisessa kuvassa pienet tähdet kutistuvat ja toisessa leviävät. Hyvin kohdistetulle kuvalla tätä ei tapahdu. Sen sijaan satelliittijuova näkyy vain toisessa kuvista. Nämä kaksi kuvaa voidaan vielä keskiarvottaa keskenään.

Luultavasti tämä toiminto on valmiina ohjelmissa, vaikka itse en etsinyt sitä käsikirjoista. Datasetti lainattu: https://www.astropix.com/html/i_astrop/practice_files.html
Tomi Parviainen

Lauri Kangas

Kuvailemasi operaatiot ovat kyllä valmiina jokaisessa järkevässä kuvankäsittelysoftassa. Ytimekkäämmin, ilman indeksijumppaa ilmaistuna, kyseessä on vain valinta siitä mikä operaatio pinottavalle pikselijoukolle suoritetaan. Normaalissa pinoamisessa se on summa tai keskiarvo jotka ovat sama asia, tässä minimi tai maksimiarvo. Erityisesti maksimiarvopino tunnetaan myös nimellä "peak hold" ja se on yleinen tapa esimerkiksi tähtiviirukuvien yhdistämisessä useasta osavalotuksesta.

Muita tapoja on laskea pikselijoukosta mediaani, tai tiputtaa otoksesta pois ääriarvot (min-max reject) tai sitten jonkun keskihajonnan moninkerran verran keskiarvosta poikkeavat arvot (sigma clip).

Vieläkin mutkikkaampia metodeja on, niitä saatetaan tarvita esim. komeettakuvissa. Juuri satelliittiviirut ovat myös hyvä esimerkki tapauksesta jossa pinoamisalgoritmia on hienosäädettävä jotta viiruja tai niiden aiheuttamia haamuja ei jää loppukuvaan.

Lauri Kangas

Tässäpä vielä tällainen esimerkki. Kuvassa on kuviteltu yksi pikselirivi jossa 200 pikseliä. Otetaan 100 tällaista kuvaa, jolloin jokaiseen pikseliin tulee 100 arvoa pinottavaksi. Arvot on tässä otettu normaalijakaumasta jonka odotusarvo on 0 ja keskihajonta 1, ja pistejoukko on piirretty kuvaan mustalla.

Nyt tuo pinoamismetodi jota ehdotat ottaa joka pikselille maksimiarvon sekä minimiarvon, ja laskee näiden keskiarvon. Tulos on sininen käppyrä.

Koko joukon keskiarvo on oranssi käppyrä. Koska minimin ja maksimin laskeminen ei mitenkään huomioi niitä 98 muun pikseliarvon keskinäistä suhdetta, siinä heitetään pois valtava otos dataa jota olisi mahdollista käyttää kohinan pienentämiseen. Siitä syystä tuo minimin ja maksimin keskiarvokäppyrä on niin paljon kohinaisempi kuin koko otoksen keskiarvo.

Harjoitustehtäväksi voi jättää visualisoinnin siitä, kuinka pelkkä minimi- tai maksimipino on vielä näitä kumpaakin aivan valtavan paljon kohinaisempi.

Kannattaa siis olla tarkkana näitä "uusia" pinoamismenetelmiä ideoidessaan ja keskittyä siihen mitä lisäarvoa mikäkin laskutapa tuo käsillä olevalle otokselle, sen sijaan että minkä menetelmän toteuttaminen on helppoa niillä työkaluilla, jotka itse kullakin on hyvin hallussa.



Näitä voi halutessaan pyöritellä seuraavalla python-koodilla:

import numpy as np
import matplotlib.pyplot as plt

A = np.random.randn(100, 200)

fig, ax = plt.subplots(1, 1, num=1, clear=True)

ax.plot(A.T, '.', ms=1, alpha=0.2, color='k')
ax.plot((A.max(0)+A.min(0))/2)
ax.plot(A.mean(0), '-')

tomipa

Kuvapinon syvempi keskiarvotus

Vasemmalla on alkuperäinen kuva. Siihen lisätty satunnaista kohinaa keskihajonnalla 25, ja sadan kohinaisen kuvan pinosta on laskettu keskimmäinen kuva. Tämän jälkeen keskiarvo lasketaan uudelleen, mutta nyt käyttäen järjestettyjä alikuvia. Kukin pinon kuva on skannattu vaakaan ja pystyyn [9 x 9 tai m x n] pikselin ikkunalla ja tämä ikkuna on suuruusjärjestetty ja indeksoitu jonoon. Sama tehdään keskiarvotetulle kuvalla. Kohinaisten alikuvien arvot korvataan keskiarvoilla. Tämän jälkeen indeksoinnin avulla järjestys palautetaan ja keskimmäinen pikseli lasketaan mukaan uuden pinon keskiarvoon, joka on oikealla oleva kuva.

En näe sumentumista kuvassa, mutta mikä voisi olla visuaalisen parannuksen perimmäinen syy? Toinen kuva on rivi kuvan reunasta 100 pikselin matkalta. Sinisellä keskiarvo ja punaisella järjestetty keskiarvo.
Tomi Parviainen