Skriva eget stackningsprogram

Programvara för astrofoto och bildbehandling.
megmar
Inlägg: 145
Blev medlem: 2014-05-25 14:22:57
spamtest: JA

Re: Skriva eget stackningsprogram

Inläggav megmar » 2018-03-07 22:41:36

Sommaren kom och sommaren gick, men inte så mycket hände ändå. Nu däremot har jag iaf fått klart centroid beräkning och FWHM. När jag grävt ner mig i dessa algoritmer så inser jag varför FWHM blir lite olika beroende på vilket program man använder. Bara sättet att beräkna en stjärnas mittpunkt har drösvis med variationer som i sin tur slår mot FWHM. Övergav dessutom HFD beräkningen tills vidare. Den är intressant för robust autofokus, men man kan inte i en och samma bild jämföra olika stjärnors HFD vilket däremot går bra med en exakt FWHM beräkning. Jag var mest ute efter nåt sätt att mäta seeing förhållanden så för mig kommer FWHM funka bättre.

När det gäller FWHM så kan man tex ta de pixlar som ligger horisontellt utmed stjärnans mittposition, men då använder man ju inte all information i bilden. Andra produkter som tex Mira Pro gör en radial profile + gaussian curve fitting för att estimera FWHM. Jag använder också alla pixlar, men har hittills fuskat med curve fitting. Jag kör en mindre exakt, men snabb approximation istället.

I grova drag så gör mitt program följande:
  1. Läs in råbild (TIFF, CR2 etc)
  2. Konvertera bilden till greyscale
  3. Gaussian blur -> Threshold bild där gränsen är median + bias
  4. Skapa lista över stjärnor i threshold bilden
  5. Sortera bort överexponerade stjärnor
  6. Sortera bort stjärnor som ligger för nära bildkanten (kommer orsaka problem senare)
  7. Sätt estimerat centrum för varje stjärna utifrån maxvärde i blur bild (pixel noggrannhet)
  8. Utvidga stjärnans radie en pixel i taget, avbryt då median värdet för cirkeln inte minskar nämnvärt längre
  9. Beräkna exakt mittpunkt för stjärnan utifrån föregående yta med "center of mass" algoritm (sub pixel)
  10. Beräkna FWHM i pixels och i arcsec per stjärna (se bild nedan)
  11. FWHM för bilden = Median värdet av alla FWHM

För att approximera FWHM värdet så sorterar jag varje stjärnpixel i fallande värden. MIN värdet får bli medelvärdet av de 20 pixlar som är längst från centrum. Half Maximum blir då värdet mitt i mellan MAX pixel (dvs första värdet i listan) och MIN värde. För att hitta Full Width så summerar jag värdet av de två pixlar som ligger närmast Half Maximum (på respektive sida). Som sagt är det fusk, men eftersom det är många pixlar för varje stjärna och dessutom många stjärnor bakom den totala beräkningen så verkar det funka hyfsat.
FWHM.png
FWHM.png (23.68 KiB) Visad 262 gånger


Exempel bild som visar FWHM för respektive stjärna.
debugImage_422.png


Här en bild som jämför samma bilders FWHM i DSS respektive mitt program. Har alltid tyckt att DSS är väldigt pessimistisk i sin FWHM beräkning och jag har fått vatten på min kvarn :)
Hur som helst så stämmer kurvornas utseende överlag så det är jag nöjd med.
DSS_vs_SubGrinder.png
/Magnus
EQ5, GSO 200/800 f4, ASI 290MM, ASI 120MC
hbar
Inlägg: 414
Blev medlem: 2010-05-14 18:22:47
spamtest: JA
Ort: Lund

Re: Skriva eget stackningsprogram

Inläggav hbar » 2018-03-08 10:13:11

Du har verkligen utnyttjat denna molniga period. Intressant att få läsa om hur du tänker när du bygger upp programmet, det kommer att bli bra underlag när jag själv får tid att jobba med sådant. Var tvungen att köpa på mig en ny lic för Delphi till det projekt jag jobbar med nu så när det är klart så ska det bli kul att börja skriva lite liknande kod (o få valuta för de drygt 40kkr lic kostade).

För att bedöma bildkvalitet så vore det en hjälp att inte bara titta på fwhm utan även se hur det ser ut i regionen strax över min nivån (10-20% regionen, fwem - Full width eighth maximum). När pixlarna ligger i bågsekund regionen o man vill försöka få fram max upplösning (lite typ lucky imaging) på urvalet så börjar detta bli intressant.

Vid kortvariga men kraftigare seeing eller tracking störningar kan de sabotera en bild trots att den har ett bra fwhm. Om den tex under 10% av tiden fått maximum att hoppa några pixlar i sidled så ger det en puckel i min regionen men når inte upp till fwhm. Jag har sett detta på många bilder som varit kassa men ändå fått bra score.

På en enstaka bild så är det svårt då tex dubbelstjärnor skulle störa. En möjlighet är naturligtvis om en majoritet har störning i samma riktning men det är tidsödande (även om det naturligtvis går snabbare än manuellt).

Enklast är nog att köra en första sållning på fwhm och sen får man manuellt välja ett mindre antal ref stjärnor som man gör fwem på. Då kan också bilder där max är betydligt lägre pga transparens fluktuationer sorteras bort.

Ser fram emot vidare rapporter och om du hittar sidor med bra algoritmtips så får du gärna ge länkar.

/Håkan
RCX400-12, C8, WO158, WO98
Daystar Quantum 0.5Å, CGE, CGEPro
megmar
Inlägg: 145
Blev medlem: 2014-05-25 14:22:57
spamtest: JA

Re: Skriva eget stackningsprogram

Inläggav megmar » 2018-03-11 20:04:30

Hej Håkan,
Intressant det du skriver om FWEM, en helt ny term för mig.
Tror jag förstår vad du är ute efter - det är en bra feature! Skulle underlätta lite om du har nån exempelbild, som uppvisar detta beteende. Du får gärna länka till sån i tråden här :) + en bild som inte har detta problem. Alltid bra med både positiva och negativa exempel..
/Magnus
EQ5, GSO 200/800 f4, ASI 290MM, ASI 120MC
hbar
Inlägg: 414
Blev medlem: 2010-05-14 18:22:47
spamtest: JA
Ort: Lund

Re: Skriva eget stackningsprogram

Inläggav hbar » 2018-03-12 08:29:21

Att du inte hört talas om FWEM kan bero på att jag hittat på den:)

Skall gräva fram lite exempel o skickar en länk i pm (kan ta någon dag då jag brukar radera de riktigt dåliga direkt).

Såg du Christers tips om ASTAP, mest för att det brukar kunna ge nya idéer när man ser hur andra löst det o här var dessutom källkoden med (även om den var i pascal). Att han anv FPC gör att man ev skulle kunna skala ner det för att göra live stacking på en r-pi.

/Håkan
RCX400-12, C8, WO158, WO98
Daystar Quantum 0.5Å, CGE, CGEPro

Återgå till "Programvara"

Vilka är online

Användare som besöker denna kategori: 1 och 0 gäst