se# Skrevet 6. november 2013 Del Skrevet 6. november 2013 For å komme i gang tror jeg det er enklest å starte med et ukomprimert format som RGB24 og helst et lett gjenkjennelig motiv så det er mulig å vite når man har funnet ut av formatet. Ta et bilde med "test-kameraet" ditt og et annet fra samme sted med et annet kamera/mobilen og legg ut begge. Lenke til kommentar
Magnusha Skrevet 8. november 2013 Forfatter Del Skrevet 8. november 2013 Her har jeg lagt ved 2 ukomprimerte formater Y8 og RGB24, samt et bilde av det jeg har tatt som eksempel. RGB24_80x60.txt RGB24_176x144.txt RGB24_320x240.txt Y8_320x240.txt Lenke til kommentar
Kristallo Skrevet 8. november 2013 Del Skrevet 8. november 2013 (endret) Her er den siste RGB24 fila, som du kan se så har du fremdeles problemer med overføringen og har mistet noen bytes sånn at sifrene kommer i uorden på slutten av fila. Bildet ligger med siste line fremst i fila. Jeg har snudd bildet 180 grader for å få det likt eksemplet. Siden bildet er såpass ute av fokus så kan jeg ikke se om det er RGB eller BGR som er brukt, Jeg brukte RGB i konverteringen. Endret 8. november 2013 av Kristallo 2 Lenke til kommentar
knutinh Skrevet 8. november 2013 Del Skrevet 8. november 2013 Har du prøvd JPEGSnoop? http://www.impulseadventure.com/photo/jpeg-snoop.html "JPEGsnoop is a free Windows application that examines and decodes the inner details of JPEG and MotionJPEG AVI files. It can also be used to analyze the source of an image to test its authenticity." Det funker ganske bra til å søke igjennom en vilkårlig fil, lete etter kjennetegn på JPEG og dekode det som lar seg dekode. -k Lenke til kommentar
Magnusha Skrevet 8. november 2013 Forfatter Del Skrevet 8. november 2013 Her er den siste RGB24 fila, som du kan se så har du fremdeles problemer med overføringen og har mistet noen bytes sånn at sifrene kommer i uorden på slutten av fila. Bildet ligger med siste line fremst i fila. Jeg har snudd bildet 180 grader for å få det likt eksemplet. Siden bildet er såpass ute av fokus så kan jeg ikke se om det er RGB eller BGR som er brukt, Jeg brukte RGB i konverteringen. Takk for utrolig bra hjelp Det jeg lurer på er hvordan du får åpnet bildet? Konverterer du .txt fila til en binærfil? Hvilket program bruker for å vise det, Photoshop? Lenke til kommentar
Kristallo Skrevet 8. november 2013 Del Skrevet 8. november 2013 Jeg laget et program, i dette tilfellet skrevet i Visual Basic siden jeg allerede hadde et gammelt program liggende som hentet bilder fra en kameramodul. Så tok jeg to og to bytes fra fila og behandlet det som et tosiftret tall i heksadesimal og konverterte det til en integer. Jeg leste 6 bytes pr piksel, 2 for rød, 2 for grønn og 2 for blå. Så plottet jeg RGB verdiene inn på en bitmap, når jeg hadde lest hele fila så lagret jeg bitmapen i en fil. Så det som ligger i fila er i tekstformat, jeg lurer litt på hvor det kommer fra siden jeg har en annen C329 modul og den spytter ut dataene i binært format. 1 Lenke til kommentar
Magnusha Skrevet 8. november 2013 Forfatter Del Skrevet 8. november 2013 Jeg laget et program, i dette tilfellet skrevet i Visual Basic siden jeg allerede hadde et gammelt program liggende som hentet bilder fra en kameramodul. Så tok jeg to og to bytes fra fila og behandlet det som et tosiftret tall i heksadesimal og konverterte det til en integer. Jeg leste 6 bytes pr piksel, 2 for rød, 2 for grønn og 2 for blå. Så plottet jeg RGB verdiene inn på en bitmap, når jeg hadde lest hele fila så lagret jeg bitmapen i en fil. Så det som ligger i fila er i tekstformat, jeg lurer litt på hvor det kommer fra siden jeg har en annen C329 modul og den spytter ut dataene i binært format. Du har ikke tilfeldigvis lyst til å vise meg koden for VB? C329 modulen spytter ut dataene binært, det stemmer. Men jeg bruker sprintf() funksjonen og konverterer de binære dataene til hex data før jeg overfører dem over USART til et terminalvindu. Lenke til kommentar
Magnusha Skrevet 9. november 2013 Forfatter Del Skrevet 9. november 2013 Hvis jeg har forstått det riktig med RGB24 nå så skal jeg ha ut 320x240x6=460800 hex "bokstaver" fra kameraet mitt? Jeg får ofte bare mellom 420000 og 450000, så her ser det ut som om det er noe galt i overføringen eller lesingen fra kameraet. Hadde du noen problemer med dette Kristallo? Hvordan frekvens hadde du på SPI klokka? Ser fila jeg la ut her som du konverterte for meg har 460796 tegn, men nå sliter jeg med å få over 440000 tegn i overføringen. Lenke til kommentar
Kristallo Skrevet 10. november 2013 Del Skrevet 10. november 2013 Du har forstått RGB24 riktig. Min kameramodul bruker UART så den sender når den er klar. Har du implementert HOLD funksjonen? Hvis du har gjort det korrekt så skal det fungere. Fila jeg konverterte har 460796 tegn, det vil si at 4 mangler. Det er også noen tegn som var 0 mot slutten av fila som tyder på at du har lest ut noen bytes mens chipen var opptatt og ikke sendte data. 1 Lenke til kommentar
Magnusha Skrevet 10. november 2013 Forfatter Del Skrevet 10. november 2013 Bra Jeg har implementert HOLD funksjonen ja. Hvis HOLD er høy (logisk 1) så skal mikrokntrolleren stoppe opp/vente (gjort ved hjelp av en while-løkke som sjekker om den er høy) til HOLD er lav igjen. Dette har jeg gjort inne i lesingen av hver byte fra kameraet. while(j<460800){ spi_selectChip(AT45DBX_SPI,3); while (gpio_get_pin_value(AVR32_PIN_PA25)){}//Wait for the module to be ready spi_put(AT45DBX_SPI,0x00); //Put dummy byte on the MOSI pin to get data spi_read(AT45DBX_SPI,&datapic); //read the data from MISO sprintf(datacam,"%X",datapic); //Convert the data to a string with HEX format usart_write_line(USART,datacam); //send to terminal window spi_unselectChip(AT45DBX_SPI,3); datapic= 0; j++; } Oppdaget en rar ting nå. Hvis jeg setter på dekslet forran linsen så skal hele bildet bli svart. Men når jeg overfører dataene får jeg kun 230400 bytes, altså halvparten av bildet (skulle vel vært 460800) før HOLD går høy og aldri går lav igjen. Skjønner ikke helt hvorfor kun halve bildet skal overføres for så og stoppe, men hvis jeg tar av dekslet så overfører kameret 450000 ish bytes før HOLD går høy. Skjønner heller ikke hvorfor jeg greide 460796 på det bildet jeg ga deg, for det har jeg ikke greid igjen siden da. svart.txt Lenke til kommentar
Kristallo Skrevet 10. november 2013 Del Skrevet 10. november 2013 Det er kansje litt forvirring. Du skal få 320*240*3 fra kameraet, men du bruker sprint og får 320*240*6 i fila. Lenke til kommentar
Magnusha Skrevet 10. november 2013 Forfatter Del Skrevet 10. november 2013 Så det "svarte" bildet jeg mottar er korrekt? Mista litt tråden her nå. RGB24 gir ut 6 bytes pr pixel, noe som tilsvarer 2 bytes pr farge (rød,grønn,blå)? Eller gir den ut 3 byte pr. pixel? Lenke til kommentar
Magnusha Skrevet 10. november 2013 Forfatter Del Skrevet 10. november 2013 Glem det, jeg greide det Det var en kjempeliten feil som gjore at det bare ble krøll. sprintf() funksjonen fjerner 0'en for alle verdier under 15, måtte legge til %02X i koden og vips fungerte det! Tusen takk for god hjelp Kristallo Lenke til kommentar
Nautica Skrevet 10. november 2013 Del Skrevet 10. november 2013 Tusen takk for god hjelp Kristallo Du får gi han noen "liker" for hjelpen Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå