Stereo-Kameradaten holen (und 3D-Rekonstruktion)

  • 5 Antworten
  • Letztes Antwortdatum
F

Flexi23

Neues Mitglied
0
Ich hab seit wenigen Tagen ein LG-V900 Optimus Pad - mein erstes Android Gerät. Nachdem es zunächst ein Krampf war, die passenden USB Treiber für die Android Debug Bridge zu finden, habe ich jetzt meine ersten eigenen Apps zum Laufen gebracht. Dabei habe ich mir nichts Geringeres vorgenommen, als aus den Bildern der beiden Rück-Kameras 3D-Daten zurückzugewinnen. Dahinter steckt auch ein gewisser Teil Traumabewältigung, da ich bei einem Unfall mit einem Sprengkörper ein Auge verloren habe und seit etwa 10 Jahren ein Glasauge trage und nicht mehr stereoskopisch gucken kann. Ich habe letztes Jahr mein Diplom in Informatik (Softwaretechnik) gemacht und ich habe mehrere Jahre Projekterfahrung mit Eclipse und Java. Dazu kommt noch mein Wissen über GPU-Programmierung zur Bildbearbeitung mit Shadern (OpenGL), welches ich ebenfalls seit mehreren Jahren hobbymäßig aufgebaut habe. Mit etwas Hilfe könnte dieser Thread also auch schnell länger werden. Ich stehe allerdings vor folgendem Problem:
Ich habe heute dieses Beispiel nachprogrammiert: Java Padawan on J2ME and Android: Camera Capture
Dabei habe ich heute zwar noch keine Bilder gespeichert, aber immerhin kann ich die Preview auf dem Display sehen und ich habe es auch soweit angepasst, dass die Fotoaufnahme durch einen Touchscreen-Button ausgelöst wird, und vor allem hab ich eine Textausgabe zum Tracen über das Vollbildvideo gelegt. Ich kann das ganze Projekt bei Interesse auch bei googlecode ablegen oder hier als Anhang.


Code:
Camera c = Camera.open()
funktioniert soweit wie erwartet

Code:
Camera.getNumberOfCameras()
gibt eine 5 zurück.

Allerdings blieben bisher alle Versuch erfolglos, eine Camera über ihre Id zu holen
Code:
Camera c = Camera.open(cameraId);
Das Camera Objekt ist zwar nicht 'null', aber ich bekomme danach keine Parameter ausgelesen. Das Parameter Objekt ist dabei auch nicht 'null', aber die Getter wie zum Beipiel params.getSupportedPreviewSizes() liefern null.


Ich hab bisher nur kurz gestöbert und bin unter anderem auch auf den Root / Hacking / Modding für LG Optimus Speed Thread gestoßen. Ich schätze, die Unterstützung für das Optimus Pad (Android 3.0) ist bisher ganz einfach noch nicht vorhanden, oder wie stehen meine Chancen?


Vielen Dank für eure Hilfe,
Felix
 
Hallo Flexi23,

ich beschäftige mich auch mit einem Problem, für das ich die Kameradaten aus dem LG Optimus Pad auslesen muss. Davon bin ich allerdings noch weit entfernt, weil ich es bisher nicht geschafft habe, den USB-Treiber für die ADB zu installieren, geschweige denn zu finden.
Könntest du bitte genau beschreiben, wo du den Treiber her hast.
Ich wär dir echt dankbar, und viele andere LG V900 User sicher auch.:)

Grüße, Kevin
 
Hallo Kevin,
Ich weiß nicht mehr hundert-prozentig welche Treiber denn nun zuletzt funktioniert haben, aber ich hab in meiner Download-History noch ein paar links gefunden:
http://www.lg.com/us/mobile-phones/Resources/LGUSBModemDriver_WHQL_Eng_Ver_4.8.1.exe
http://s3.amazonaws.com/lgforum.com...Mobile_G-Slate_USB_Driver_v3.2.zip?1303353290
http://s3.amazonaws.com/lgforum.com...nal/LG _USB _Drivers_All_4.9.7.zip?1298055768

Wie gesagt, du musst wohl selber herausfinden, welcher davon der richtige ist.
Dafür hab ich dir auch meine Camera App angehängt. ;)
 

Anhänge

  • Camera.apk
    18,3 KB · Aufrufe: 241
  • Camera Eclipse Project.zip
    60,9 KB · Aufrufe: 166
Vielen Dank,

es war der zweite Link: LG T-Mobile G-Slate USB Driver V.3.2
Jetzt kanns losgehen!
Schau mir gleich mal deine App an, danke auch dafür.
:smile:

Grüße, Kevin
 
Hi Flexi,

vielen Dank für die Hilfe mit den Treibern, hab es jetzt auch endlich hinbekommen mal ein paar Beispiel-Apps laufen zu lassen.
Dein Kamera-Projekt schau ich mir auch gerade an, kann davon wohl noch viel lernen.


Edit: Wenn du bei der Abfrage der Kameradaten nich c.unlock() machst, kannst du die Daten auslesen hab ich gerade herausgefunden. (In CameraActivity, surfaceCreated() Methode in der For-Schleife).
 
Zuletzt bearbeitet:
Danke, der Tipp mit dem unlock() hat weitergeholfen!
Ich bin allerdings fest der Meinung, dass ich das unlock erst eingeführt hatte, nachdem ich ohne noch ganz andere Probleme hatte (Properties Objekt == null, oder ähnlich*?*). Ich bin etwas irritiert, aber glücklich dass es jetzt geht :) (Hab ich zwischendurch vielleicht unbewusst ein Update installiert?)

Die nächste Herausforderung ist jetzt, die Bilddaten zur Weiterverarbeitung in einen OpenGL-Context zu bringen. In den letzten Wochen habe ich es immerhin geschafft, mein Eclipse so einzurichten, dass ich Android-Apps aus Java und aus nativem C/C++ Code in nur einem Projekt erstellen kann (Android NDK, Cygwin, CDT für Eclipse). Ich kann momentan noch nicht abschätzen, ob native überhaupt nötig sein wird, aber zumindest steht der Weg jetzt auch offen. In einem anderen Wochenendprojekt, an dem ich gerade tüftel, bin ich jetzt an der Optimierung für den Einsatz von Shadern. Mit Hilfe eines Tricks kann man sich etwa Geometrieberechnung sparen: An interesting vertex shader trick « #AltDevBlogADay Ich nähere mich so also gerade noch von einer anderen Seite.

Für weiter Interessierte empfehle ich die ShaderToy App. Ansonsten ist Processing auch einen Blick wert, wobei ich Processing für dieses Projekt nicht verwenden werde.
 
Zuletzt bearbeitet:

Ähnliche Themen

G
  • garfield2008
Antworten
0
Aufrufe
3.521
garfield2008
G
Zurück
Oben Unten