2016-11-23 6 views
0

Ich arbeite an einem Udoo versuchen, die Kamera ein Bild zu machen, das ich in Python manipulieren kann.Python mit Gstreamer Pipeline

Bisher arbeitet die Kamera mit

gst-launch-1.0 imxv4l2videosrc ! imxipuvideosink

ich auch ein einzelnes Bild mit

gst-launch-1.0 imxv4l2videosrc num-buffers=1 ! video/x-raw ! jpegenc ! filesink location=output.jpg

Von here nehmen es scheint, wie Sie direkt aus einem gstreamer Stream lesen in Python mit OpenCV.

Hier ist mein Python-Code:

import cv2 
cam = cv2.VideoCapture("imxv4l2videosrc ! video/x-raw ! appsink") 
ret, image = cam.read() 

jedoch ret ist False, und das Bild ist nichts.

Einige Orte sagen, das funktioniert nur mit OpenCV 3.0+ und andere sagen 2.4.x, aber ich kann nicht scheinen, eine tatsächliche Antwort auf welche Version es funktioniert zu finden.

Wenn ich auf OpenCV 3.0 updaten muss, welchen Teil aktualisiere ich? Ich habe OpenCV über die Apt-Repositories unter dem Paket python-opencv heruntergeladen. Also muss ich Python aktualisieren? Kann ich OpenCV einfach aus der Quelle erstellen, und Python wird automatisch die neueste Version verwenden? Ich bin so verwirrt.

+0

Wahrscheinlich hätte ich nie eine schlechtere Zeit wählen können, um eine Frage zu stellen. – justynnuff

Antwort

1

Die Ubuntu/Debian-Version ist alt 2.4.x, um die letzte zu bekommen, die Sie aus der Quelle kompilieren müssen.

Hier werden zwei Tutorials, wie das zu tun:

  1. https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_setup/py_setup_in_fedora/py_setup_in_fedora.html#installing-opencv-from-source
  2. http://www.pyimagesearch.com/2015/07/20/install-opencv-3-0-and-python-3-4-on-ubuntu/

Die erste ist für Python 2.7 auf Fedora, die zweite für Python 3.4 auf Ubuntu.

+1

Ich referenzierte beide Ihre Links und bekam OpenCV mit Python 2.7 auf einem Udoo Dual. Falls jemand hier von einer Suche landet, habe ich in den Udoo-Foren gepostet: http://www.udoo.org/forum/threads/using-udoo-camera-with-opencvs-videocapture-class-2-0.6130/#post -23716 – justynnuff