App - Fotos mit IMU-Daten Taggen und Tiefenbild berechnen.

  • Antworten:6
Mike Stoke
  • Forum-Beiträge: 2

01.05.2014, 17:48:42 via Website

Hi,

ich habe bisher noch nichts für Android programmiert. Mit Java habe ich auch noch keine Erfahrung. Mit C und C++ habe ich schon ein paar kleinere Projekte umgesetzt.
Demnächst möchte ich ein Projekt starten und würde gerne ein paar Meinungen dazu einholen. Ich möchte mit der Handykamera zwei Bilder knippsen und mithilfe der zugehörigen IMU-Daten ein Tiefenbild errechnen.

Ich habe ein paar Tutorials gefunden, die zeigen wie die Kamera benutzt werden kann und auch sonst scheint es viele Projekte zu geben die vielleicht hiflreich sein könnten.
Meine Idee wäre jetzt die IMU-Daten mit den Metadaten der Bilder zusammen zu speichern und dann mit Opencv die restlichen Berechnungen durchzuführen und dann ein Tiefenbild zu erhalten. Ich habe auch schon ein paar Apps gefunden die die IMU Daten liefern würden.

Meine Fragen sind daher:

  1. Kann man im Allgemeinen den Source Code bestehender Apps einfach
    bearbeiten, so dass ich mir vielleicht aus bestehenden Apps etwas
    zusammenflicke?

  2. Ich habe schon mit OpenCV gearbeitet, und dort mal in die Doku
    geschaut. Die empfehlen dort sogar auch für Android mit C++ zu
    arbeiten. Könnte ich das Projekt nicht komplett in C++ umsetzten,
    bzw. was ist das Problem wenn es doch unterstützt wird. Ich lese nur
    immer das Java empfohlen wird aber nicht warum?!

  3. Wie schätzt ihr den Aufwand ein? Ist es eurer Meinung nach eher
    "leicht" oder "schwierig" den Einstieg in die Android programmierung
    zu finden?

  4. Hätte jemdand einen besseren Vorschlag für die Umsetzung, oder
    vielleicht schon mal so etwas gemacht?

Danke schon mal und Viele Grüße!

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

01.05.2014, 19:25:48 via Website

Hallo,
1. Nein den Bestehenden SourceCode kannst und sollst du nicht bearbeiten da dies nicht Rechtens ist.
2. Ja, du kannst deine App in C++ umsetzen, dafür musst du dir dann die Passende Api herunterladen.
Es ist auch benutzbar, doch nicht so flexibel und ausgereift wie Java. Außerdem wird dein C++ Code vom Compiler in Java Bytecode umgewandelt.
3.
Je nach Vorahnung beim Programmieren bzw. beim Programmieren mit Android kann der Schwierigkeitsgrad anders sein.
Ich glaube aber eher, dass es eher schwierig ist, als Anfänger so etwas zu Realisieren.
Vielleicht solltest du ein paar kleine Einsteigerprojekte suchen, damit du in allem etwas Übung bekommst.
Dann kannst du dich ein dein Projekt wagen.
4.
Von deinem Vorhaben, habe ich jetzt nichts verstanden bzw:
Was sind imu Dateien oder was ist ein Tiefenbild
(noch nie gehört)

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
impjor
  • Forum-Beiträge: 1.793

01.05.2014, 22:20:58 via App

Pascal P.

  1. Ja, du kannst deine App in C++ umsetzen, dafür musst du dir dann die Passende Api herunterladen.
    Es ist auch benutzbar, doch nicht so flexibel und ausgereift wie Java. Außerdem wird dein C++ Code vom Compiler in Java Bytecode umgewandelt.

Ich habe noch nie von einem "Compiler" gehört, der C++-Code in Zusammenhang mit einer Java-API in Java-Bytecode umwandelt.

OpenCV nutzt auf jeden Fall JNI (Java Native Interface). D.b. das einerseits der platformunabhängige Java-Code und einmal platformspezifischer (Kombination aus Prozessor + Betriebssystem) Code (also z.B. C++-Code) zusammen arbeiten können.

Will man das ganze in Android nutzen, nutzt man das Android NDK.

Doch trotzdem wird die App nicht in C programmiert! Lediglich einzelne Funktionen werden aus dem C-Code aufgerufen.

Ein Beispiel: Du willst eine App programmieren, die testet ob eine Zahl eine Primzahl ist. Das ist Prozessorlastig, deswegen hast du ein C Programm, dass jedes kleine bisschen Optimierungsmöglichkeit ausnutzt.
Deine Android-App besteht dann zu 99% aus Java-Code (GUI, Einstellungen, alles außer) 1% C-Code: Die Funktion die testet, ob der int x eine Primzahl ist.

Zu deiner Frage, ob Android-Apps jetzt schwierig zu programmieren sind: Wenn du schon programmieren kannst, und nicht so viel Wert auf das UI legst, sollte das gut schaffbar sein.
Zuerst würde ich mich aber unbedingt mit OpenCV beschäftigen und vielleicht in einem Java-Desktop-Programm schon die eigentliche Funktionalität programmieren, sodass du für Android nur Bild aufnehmen, Tiefenbild darstellen entwickeln musst.

€dit: Wobei ich auch noch nie etwas in der Richtung gemacht habe und davon ausgehe, dass du das Wissen hast, wie du so ein Tiefenbild erstellen kannst. (Also z.B. in C als Desktop-Programm).

— geändert am 01.05.2014, 22:24:10

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
Mike Stoke
  • Forum-Beiträge: 2

02.05.2014, 11:30:50 via Website

Danke für die Einschätzung. Also in C/C++ kann ich das schon umsetzen. Ich werde mir mal Android NDK anschauen und ein wenig rumprobieren.

Antworten
impjor
  • Forum-Beiträge: 1.793

03.05.2014, 00:53:17 via App

Wie oben gesagt, ist es möglich C(++) - Code aus Java heraus auszuführen. (JNI)
Das benutzt auch AIDE.

Trotzdem wird dieser Code dann aber nicht in Byte-Code umgewandelt, heißt, er läuft z.B. nicht auf anderen Platformen. Dazu muss man den selben C++ - Code für mehrere Platformen einzeln kompilern und dann in der apk mitliefern.

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

04.05.2014, 11:32:52 via Website

Achso dann hatte ich das falsch verstanden.
Danke für die Erklärung :)

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten