Löytyykö c++ osaajaa kuvausohjelmaa kehittämään ?

Aloittaja Kimmo65, 19.08.2020, 11:40:56

« edellinen - seuraava »

Kimmo65

Terve

Löytyisikö henkilöä joka olisi valmis harrastuspohjalta kehittämään c++ kielistä tähtitieteelliseen kuvaukseen liittyvää ohjelmistoa ?  Tarkoitus on tehdä 'planetary stacking' tyyppistä kuvankäsittelyä lähes reaaliajassa. Tai ainakin niin nopeasti kuin mahdollista  :cheesy:

Elikkäs homma menee seuraavasti:

- Luetaan auringon, kuun tai planeetan kuva kameralla useita kymmeniä kertoja sekunnissa. Kameralla tarkoitan CMOS/CCD kameraa, en digijärkkäriä.

- Kuvat siirretään päällekkäin, jonka jälkeen kuvista otetaan keskiarvo. Sitten kuvaa terävöitetään esim. wavelet-menetelmällä.

- Tätä tehdään kuvavirralle jatkuvasti, ja prosessoitu kuva esitetään näytöllä.
Keskiarvon voisi ottaa noin 10 kuvasta. Jos kuvia tulisi kamerasta hyvin kohtuullinen 20 kuvaa sekunnissa, voisi näytön kuvaa päivittää noin 2 kertaa sekunnissa.
Sinänsä ei ole mitään tarvetta nopeammalle päivitykselle koska kohteet ovat muuttumattomia kun puhutaan sekuntien aikaskaaloista.


Tämä on siis periaatteessa sama juttu kuin mitä esim. Autostakkert ohjelma tekee, paitsi että prosessointi pitää tehdä lähes reaaliajassa ja Autostakkert laskee keskiarvon sadoista kuvista. Tavoitteena olisi että näyttöä voisi päivittää vähintään pari kertaa sekunnissa. Koska prosessointi pitää tehdä varsin nopeasti ja suht pienellä kuvamäärällä, en odota että kuvan laadussa pääsisi samaan laatuun kuin esim. Autostakkert ohjelmalla, mutta se ei ole tavoitteena. Ohjelma on siis tarkoitettu vain kohteiden lähes reaaliaikaiseen katseluun.

Tällaista lähes reaaliaikaista kuvien pinoamista tekee SharpCap ohjelma
( www.sharpcap.co.uk ), mutta vain tähtikuville, ei pintamaisille aurinko / kuu / planeetta kuville.

Projekti vaatii kehittämistä sen suhteen mikä on nopein ja luotettavin tapa tehdä prosessointi. Ohjelmassa pitäisi olla myös monipuoliset säädöt mitä tulee kuvan skaalaukseen, väreihin, kontrastin säätö, gamma säätö, yms.  Ja kaikille ohjelman muillekin parametreille pitää olla graafinen käyttöliittymä josta parametreja voi helposti muuttaa.

Ihan tyhjästä ei sentään tarvitse aloittaa. Itselläni on pieni Lunt LS50THa vedyn H-alpha aurinkoteleskooppi, ja kamerana ASI120S.  Tällä yhdistelmällä voi testata auringon katselua.    Kameran valmistajalta löytyy Software Development Kit ( www.astronomy-imaging-camera.com/software-drivers )  jonka avulla pääsee softassa alkuun.

Lisäksi tämän ohjelman pitäisi toimia mahdollisimman monen eri valmistajan kameran kanssa.
Itselläni ei ole kokemusta c++ ohjelmoinnista. Pythonilla voisin yrittää toteuttaa mutta se ei taida olla riittävän nopea tähän tarkoitukseen.

Tämän projektin takana on eräs juttu jota en tässä paljasta. Mutta se on se syy minkä takia haluan toteuttaa tällaisen ohjelman.

Uskoisin että lopullista tuotetta, jos se toimii hyvin, voisi myydä pieneen hintaan.

Kysymyksiä voi laittaa tälle palstalle tai meilitse  kimmo.lehtinen ät yahoo.fi
Jos olet kiinnostunut koodauksesta niin vastaa meilitse.

terv. Kimmo Lehtinen

ispa

Tuollaisesta voisi kehittää kansainvälisen projektin jollekin alustalle kuten SourceForge tai GitHub. Niissä on valmiina projektin kannalta hyödyllisiä työkaluja. Se voisi keskineräisenäkin herätellä uusia asiasta kiinnostuneita mukaan projektiin koodauksen, suunnittelun, kääntämisen (translation) ja testauksen merkeissä.
Ilpo Kantonen

Mimmu

Onkohan tämä projekti edennyt?

Itsellä koodaustaustaa 27 v, tosin ei c++.

ispa

Tuli vaan mieleen, että python olsii varmasti koodarille mukavampi kieli tehdä työkaluohejlmia ja ohjelmistoja. Ja tietääkseni sillä pystyy siihen mitä C++:llakin. Esimerkiksi bittitason tarkkuudella tiedon käsittelyä. Pythonilla työn tuottavuus on käsitysteni mukaan paljon parempi. Pythonilla voi tehdä myös kuvankäsittelyä. Siinä on erillisiä moduuleita sellaisiin.

Jos nopeus tulee kriittiseksi tekijäksi, niin eikö ohjelmakielissä voikin kutsua toisen ohjelmakielen moduuleita? Ja voihan tuon kääntää valmiiksi assemblerille (konekielelle).

Tuo GitHub tai SourceForge on erittäin kannatettava alusta tehdä ohjelimstoprojekti ja julkisena. Mukaan voi liittyä osaavia virtuooseja, jotka koodaavat haluttuja ominaisuuksia. Tällaisesta on esimerkkinä Linux-järjestelmä, joka oli alunperin yhden ihmisen yliopistotasoinen hajoritustyö. Kaveri laittoi sen julkiseksi. Mukaan liittyi aina vaan enemmän ihmisiä, jotka kheittelivät projektista monipuolisemman. Ja nyt Linux on tunnettu hyvä käyttöjärjestelmä!


Tässä on vielä yksi Lappeenrannan teknillisessä yliopistossa vuonna 2007 kirjoitettu opinnäyte: Python grafiikkaohjelmointi Imaging Libraryllä.
Ilpo Kantonen

turboruuvi

Ei pythonista oikein konekielistä saa, se kun on sen verran dynaaminen. Puhumattakaan niistä jumalattomista kirjastoista, joita tarvitaan siihen tuottavuuteen.
C++ taitaa olla niitä viimeisimpiä oikeasti käännettäviä kieliä. Useimmat uudemmat toimivat bytecode-tulkkien nokassa. Huonosti onnistuu tulkatulla kielellä (tai edes käyttöjärjestelmällä), jos tarvitaan alle mikrosekunnin tarkkuuden ajoituksia.

Jos taas kameraa luetaan (kuten arvelen) USB:n kautta, on homma enemmän applikaatio-ohjelmointia, ja siihen saattaisi käyttis + Python sopia paremmin.
(USB-ajuri on järkyttävä tehdä.)

Kiinnostava juttu kyllä. Itse enemmän C-miehiä (embedded). mutta eiköhän C++ sen verran sujunne. Ongelmana kyllä voi olla se, jos sen pitäisi olla Windows-koodia. Paljaan raudan kanssa kyllä tulisin toimeen. Windows- ja Linux-ajurien tekemisistäkin on jo vuosikymmeniä aikaa.

Olen, siis, ammatiltani sulasoftari.