webentwicklung-frage-antwort-db.com.de

Ist es möglich, opencv (Python-Bindung) von einem virtuellen Computer aus auszuführen?

Ich möchte alles in der virtuellen Umgebung behalten. Ist das mit OpenCV möglich? Ich kann von Grund auf neu erstellen. Muss ich nur zuerst die virtuelle Umgebung einrichten und dann mithilfe spezieller Kompilierungsflags angeben, wohin die Installation erfolgen soll?

31
xamox

Ich fand die Lösung: Ich musste cv2.so und cv.py in das Verzeichnis kopieren, in dem die virtualenv ausgeführt wird, und dann die Installation von numpy. Um dies auf Ubuntu 12.04 zu tun, habe ich verwendet.

virtualenv virtopencv
cd virtopencv
cp /usr/local/lib/python2.7/dist-packages/cv* ./lib/python2.7/site-packages/
./bin/pip install numpy
source bin/activate
python
import cv
40
xamox

Von opencv Installationsanleitung :

Standardmäßig wählt das OpenCV-Buildsystem die aktuellste Version von Python aus, die gefunden werden kann, oder Sie können erzwingen, dass eine bestimmte Version mithilfe der PYTHON_EXECUTABLE-Variablen verwendet wird, wenn Sie cmake aufrufen.

Ich habe es gerade auf meinem Ubuntu 11.10 auf dem virtuellen Env --with-no-site-package installiert, indem ich den Anweisungen unter dem obigen Link gefolgt bin. Sie müssen ganze opencv erstellen. und sein Python-Wrapper zusammen.

EDIT 1:

  1. Erstellen Sie ein temporäres Verzeichnis, das wir als bezeichnen, in dem Sie die generierten Makefiles, Projektdateien sowie Objektdateien und Ausgabedateien ablegen möchten.

    cd ~/opencv
    mkdir release
    cd release
    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
    
  2. Geben Sie das erstellte temporäre Verzeichnis () ein und fahren Sie fort mit:

    make
    Sudo make install
    

---------

fügen Sie nach der Erstellung und Installation die Erweiterungsmodule auf PYTHON_PATH hinzu

export PYTHONPATH=~/projects/opencv/release/lib:$PYTHONPATH
5
pylover

Unter Debian habe ich python-opencv, python-virtualenv und python-pip installiert und dann eine virtualenv mit der Option --system-site-packages erstellt.

4
yuval

Dies ist möglich, indem die ausführbare Python-Datei als Argument an cmake übergeben wird. Ich würde auch vorschlagen, einen lokalen Installationsordner zu verwenden, so dass Sie Sudo überhaupt nicht benötigen. Wenn Sie von make install nicht nach Sudo-Berechtigungen gefragt werden, zielt es wahrscheinlich auf Ihren Python von virtualenv ab.

Öffnen Sie die Datei cmakelists.txt mit cmake-gui, um die Python-Variablen anzuzeigen. Es würde wahrscheinlich auch einen Fehler geben, wenn Sie kein numpy in Ihrer virtualenv haben, so dass Sie wissen, dass Sie den richtigen Python wählen. Dies funktioniert auch unabhängig von der Python-Version, da sie speziell für Ihre ausführbare Python-Datei erstellt wurde

0