Ich habe meine jetzt voll funktionsfähige Lösung OpenCV-Python - Installieren des OpenCV-Python-Pakets in Anaconda (Windows) zusammengefasst . Trotzdem habe ich die wichtigen Teile in diesen Beitrag kopiert und eingefügt.
Zum Zeitpunkt des Schreibens verwendete ich Windows 8.1, einen 64-Bit-Computer, Anaconda / Python 2.x. (Siehe Hinweise unten - dies funktioniert auch für Windows 10 und wahrscheinlich auch für Python 3.x).
HINWEIS 1: Wie von @great_raisin (danke) im Kommentarbereich erwähnt, scheint diese Lösung jedoch auch für Windows 10 zu funktionieren.
HINWEIS 2: Dies wird wahrscheinlich auch für Anaconda / Python 3.x funktionieren. Wenn Sie Windows 10 und Anaconda / Python 3.x verwenden und diese Lösung funktioniert, fügen Sie unten einen Kommentar hinzu. Vielen Dank! (Update: Hinweis aus Kommentar "Arbeiten unter Windows 10")
HINWEIS 3: Je nachdem, ob Sie Python 2.x oder 3.x verwenden, passen Sie die print
Anweisung in Codefragmenten entsprechend an. dh in Python 3.x wäre es print("hello")
und in Python 2.x wäre es print "hello"
.
TL; DR
Um OpenCV vollständig mit Anaconda (und Spyder IDE) nutzen zu können, müssen wir:
- Laden Sie das OpenCV-Paket von der offiziellen OpenCV-Website herunter
- Kopieren Sie die
cv2.pyd
Verzeichnis in das Verzeichnis der Anaconda-Site-Pakete ein.
- Stellen Sie Benutzerumgebungsvariablen so ein, dass Anaconda weiß, wo sich das FFMPEG-Dienstprogramm befindet.
- Führen Sie einige Tests durch, um sicherzustellen, dass OpenCV und FFMPEG jetzt funktionieren.
(Lesen Sie weiter für die detaillierten Anweisungen ...)
Voraussetzung
Installieren Sie Anaconda
Anaconda ist im Wesentlichen eine gut verpackte Python-IDE, die mit unzähligen nützlichen Paketen wie NumPy, Pandas, IPython Notebook usw. geliefert wird. Sie scheint überall in der wissenschaftlichen Gemeinschaft empfohlen zu werden. Schauen Sie sich Anaconda an, um es zu installieren.
Installieren Sie OpenCV-Python in Anaconda
Vorsicht: Ich habe ursprünglich versucht, das OpenCV-Paket binstar.org wie vorgeschlagen zu installieren. Diese Methode enthält jedoch nicht den FFMPEG-Codec - dh Sie können möglicherweise OpenCV verwenden, aber Sie können keine Videos verarbeiten.
Die folgende Anleitung funktioniert für mich und ist von diesem OpenCV-YouTube-Video inspiriert . Bisher funktioniert es sowohl auf meinem Desktop als auch auf meinem Laptop, sowohl auf 64-Bit-Computern als auch auf Windows 8.1.
Laden Sie das OpenCV-Paket herunter
Besuchen Sie zunächst die offizielle OpenCV-Website , um das vollständige OpenCV-Paket herunterzuladen. Wählen Sie eine Version aus, die Ihnen gefällt (2.x oder 3.x). Ich bin auf Python 2.x und OpenCV 3.x - hauptsächlich, weil auf diese Weise die OpenCV-Python-Tutorials eingerichtet / basiert werden.
In meinem Fall habe ich das Paket (im Wesentlichen einen Ordner) direkt auf mein Laufwerk C ( C:\opencv
) extrahiert .
Kopieren Sie die Datei cv2.pyd und fügen Sie sie ein
Das Anaconda Site-packages-Verzeichnis (z. B. C:\Users\Johnny\Anaconda\Lib\site-packages
in meinem Fall) enthält die Python-Pakete, die Sie importieren können. Unser Ziel ist es, die cv2.pyd
Datei zu kopieren und in dieses Verzeichnis einzufügen (damit wir die import cv2
in unseren Python-Codes verwenden können).
Kopieren Sie dazu die cv2.pyd
Datei ...
Von diesem OpenCV-Verzeichnis (der Anfangsteil kann auf Ihrem Computer geringfügig abweichen). Für Python 3.x, glaube ich, nur das ändern , 2.x
um sich 3.x
entsprechend.
# Python 2.7 and 32-bit machine:
C:\opencv\build\python\2.7\x84
# Python 2.7 and 64-bit machine:
C:\opencv\build\python\2.7\x64
Zu diesem Anaconda-Verzeichnis (der Anfangsteil kann auf Ihrem Computer leicht abweichen):
C:\Users\Johnny\Anaconda\Lib\site-packages
Nach diesem Schritt können wir nun import cv2
Python-Code verwenden. ABER wir müssen noch ein bisschen mehr arbeiten, damit FFMPEG (Video Codec) funktioniert (damit wir beispielsweise Videos verarbeiten können).
Umgebungsvariablen festlegen
Klicken Sie mit der rechten Maustaste auf "Arbeitsplatz" (oder "Dieser PC" unter Windows 8.1) → Klicken Sie mit der linken Maustaste auf Eigenschaften → Klicken Sie mit der linken Maustaste auf die Registerkarte "Erweitert" → Klicken Sie mit der linken Maustaste auf die Schaltfläche "Umgebungsvariablen ...".
Fügen Sie eine neue Benutzervariable hinzu, die auf OpenCV verweist (entweder x86 für 32-Bit-Systeme oder x64 für 64-Bit-Systeme). Ich bin derzeit auf einem 64-Bit-Computer.
| 32-bit or 64 bit machine? | Variable | Value |
|---------------------------|--------------|--------------------------------------|
| 32-bit | `OPENCV_DIR` | `C:\opencv\build\x86\vc12` |
| 64-bit | `OPENCV_DIR` | `C:\opencv\build\x64\vc12` |
Anfügen %OPENCV_DIR%\bin
an die Benutzervariable PATH
.
Zum Beispiel PATH
sieht meine Benutzervariable so aus ...
Vor:
C:\Users\Johnny\Anaconda;C:\Users\Johnny\Anaconda\Scripts
Nach dem:
C:\Users\Johnny\Anaconda;C:\Users\Johnny\Anaconda\Scripts;%OPENCV_DIR%\bin
Damit sind wir fertig! FFMPEG ist einsatzbereit!
Test zur Bestätigung
Wir müssen testen, ob wir dies jetzt in Anaconda (über Spyder IDE) tun können:
- OpenCV-Paket importieren
- Verwenden Sie das Dienstprogramm FFMPEG (zum Lesen / Schreiben / Verarbeiten von Videos).
Test 1: Können wir OpenCV importieren?
Um zu bestätigen, dass Anaconda jetzt das OpenCV-Python-Paket importieren kann (nämlich cv2
), geben Sie diese in der IPython-Konsole aus:
import cv2
print cv2.__version__
Wenn das Paket cv2
fehlerfrei importiert und die cv2
Version ausgedruckt wird, sind wir alle gut! Hier ist ein Schnappschuss:
(Quelle: mathalope.co.uk )
Test 2: Können wir den FFMPEG-Codec verwenden?
Legen Sie eine Beispielvideodatei input_video.mp4
in einem Verzeichnis ab. Wir wollen testen, ob wir können:
- Lesen Sie diese
.mp4
Videodatei und
- schreibe eine neue Videodatei (kann sein
.avi
oder .mp4
etc.)
Dazu benötigen wir einen Test-Python-Code, nennen Sie ihn test.py
. Legen Sie es im selben Verzeichnis wie die Beispieldatei ab input_video.mp4
.
So test.py
könnte es aussehen (ich habe hier sowohl neuere als auch ältere Versionscodes aufgelistet - lassen Sie uns wissen, welcher für Sie funktioniert / nicht funktioniert!).
(Neuere Version...)
import cv2
cap = cv2.VideoCapture("input_video.mp4")
print cap.isOpened() # True = read video successfully. False - fail to read video.
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter("output_video.avi", fourcc, 20.0, (640, 360))
print out.isOpened() # True = write out video successfully. False - fail to write out video.
cap.release()
out.release()
(Oder die ältere Version ...)
import cv2
cv2.VideoCapture("input_video.mp4")
print cv2.isOpened() # True = read video successfully. False - fail to read video.
fourcc = cv2.cv.CV_FOURCC(*'XVID')
out = cv2.VideoWriter("output_video.avi",fourcc, 20.0, (640,360))
print out.isOpened() # True = write out video successfully. False - fail to write out video.
cap.release()
out.release()
Dieser Test ist sehr wichtig. Wenn Sie Videodateien verarbeiten möchten, müssen Sie sicherstellen, dass Anaconda / Spyder IDE den FFMPEG (Videocodec) verwenden kann. Ich habe Tage gebraucht, um es zum Laufen zu bringen. Aber ich hoffe, Sie brauchen viel weniger Zeit! :) :)
Hinweis: Ein weiterer sehr wichtiger Tipp bei der Verwendung der Anaconda Spyder IDE. Stellen Sie sicher, dass Sie das aktuelle Arbeitsverzeichnis (CWD) überprüfen !!!
Fazit
Um OpenCV vollständig mit Anaconda (und Spyder IDE) nutzen zu können, müssen wir:
- Laden Sie das OpenCV-Paket von der offiziellen OpenCV-Website herunter
- Kopieren Sie das
cv2.pyd
Verzeichnis und fügen Sie es in das Verzeichnis der Anaconda-Site-Pakete ein.
- Stellen Sie Benutzerumgebungsvariablen so ein, dass Anaconda weiß, wo sich das FFMPEG-Dienstprogramm befindet.
- Führen Sie einige Tests durch, um sicherzustellen, dass OpenCV und FFMPEG jetzt funktionieren.
Viel Glück!