2010-06-15 9 views
5

Ich habe 4 digitale Nocken, der Abstand zwischen jeder Kamera ist 30 CM, ich brauche eine Software oder eine Programmierbibliothek, die auf C++ oder Java funktioniert, die Videos von diesen 4 Cams nehmen kann, und sie in einem Video mit nur einem Bild, das von den 4 Cams gesammelt wird, wären alle Hinweise hilfreich, Danke trotzdem.Was ist die beste Programmiersprache für die Videoverarbeitung?

+4

Ich denke, Sie über die beste Bibliothek oder beste Anwendung fragen sollte, nicht die beste Sprache. Auch für welches O/S? Und wie willst du 4 Videos in 1 zusammenführen oder auswählen? – ChrisW

+1

Warum erhalten Sie nicht nur Videobearbeitungssoftware? Das ist wie Kanonenkugeln bei Spatzen ... –

+0

@Jan Kuboschek - Es gibt keinen Overkill! :) – willcodejavaforfood

Antwort

1

Betrachten Sie Pure Data und GEM. Es hat einige interessante Möglichkeiten, obwohl es mehr sein könnte, als Sie abbeißen möchten.

Java hat die Java Media Framework, die Ihnen einige anständige Werkzeuge zur Verfügung stellt.

+0

Wenn Sie Pure Data verwenden, ist GEM die Standardbibliothek für Video. Sie können aber auch http://Gridflow.ca und PDP verwenden. Sie basieren auf jeweils eigenen Prämissen. GEM stellt OpenGL grundsätzlich für Pure Data bereit, während Gridflow sich hauptsächlich mit Matrixmathematik beschäftigt, hauptsächlich für Video. –

0

Das ist ein Problem der Stereokorrespondenz und eine Möglichkeit zum Zusammenführen n verschiedene Bilder würden eine Art von lokalen Features verwenden (SIFT, SURF, SCHNELL usw.) In der OpenCV-Bibliothek ist bereits ein SURF-Detektor implementiert. Sie müssten wahrscheinlich C oder C++ für die Echtzeitverarbeitung verwenden.

1

Ich würde Ihnen empfehlen OpenCV, die eine Open Source Computer Vision-Bibliothek für C-Entwicklung ist. Einmal konfiguriert, ist es relativ einfach zu verwenden.

Auschecken this reference. Sehen Sie sich die Methode cvCaptureFromCAM() in der Referenz an, um Frames von einer Videokamera zu lesen.

1

Ich empfehle, dass Sie das GStreamer Framework dafür verwenden. Ich habe ähnliche Dinge damit gemacht: einen Videostream, eine Bildschirmaufnahme und ein Logo zu einem kombinierten Video zu kombinieren.

Programmiersprache Optionen sind:

  • C: direkt auf die API. Es ist nicht zu schwer. Siehe documentation.
  • Python: Bindungen an die C-API
  • gst-launch: eine deklarative Sprache für die schnelle Einrichtung einer Pipeline. Tipp: Es rockt!
  • : Skriptsprache mit C# -Syntax. Es hat es nie benutzt, also kann ich es nicht sagen, es ist gut.

Überprüfen Sie auch meine Antwort auf diese Frage: How can I tile videos/create a video montage?