J'ai résumé ma solution maintenant pleinement opérationnelle, OpenCV-Python - Comment installer le package OpenCV-Python sur Anaconda (Windows) . Néanmoins, j'ai copié et collé les éléments importants de ce message.
Au moment d'écrire ces lignes, j'utilisais Windows 8.1, une machine 64 bits, Anaconda / Python 2.x. (voir les notes ci-dessous - cela fonctionne également pour Windows 10, et probablement aussi Python 3.x).
REMARQUE 1: comme mentionné mentionné par @great_raisin (merci) dans la section commentaire, cette solution semble également fonctionner pour Windows 10.
NOTE 2: cela fonctionnera probablement aussi pour Anaconda / Python 3.x. Si vous utilisez Windows 10 et Anaconda / Python 3.x et que cette solution fonctionne, veuillez ajouter un commentaire ci-dessous. Merci! (Mise à jour: notant du commentaire "Travailler sur Windows 10")
REMARQUE 3: selon que vous utilisez Python 2.x ou 3.x, ajustez simplement l' print
instruction en conséquence dans les extraits de code. c'est à dire en Python 3.x ce serait print("hello")
, et en Python 2.x ce serait print "hello"
.
TL; DR
Pour utiliser OpenCV pleinement avec Anaconda (et Spyder IDE), nous devons:
- Téléchargez le package OpenCV sur le site officiel d'OpenCV
- Copiez et collez le
cv2.pyd
dans le répertoire Anaconda site-packages.
- Définissez les variables d'environnement utilisateur pour qu'Anaconda sache où trouver l'utilitaire FFMPEG.
- Faites quelques tests pour confirmer qu'OpenCV et FFMPEG fonctionnent maintenant.
(Lisez la suite pour les instructions détaillées ...)
Prérequis
Installer Anaconda
Anaconda est essentiellement un IDE Python bien emballé qui est livré avec des tonnes de paquets utiles, tels que NumPy, Pandas, IPython Notebook, etc. Il semble être recommandé partout dans la communauté scientifique. Consultez Anaconda pour l'installer.
Installer OpenCV-Python sur Anaconda
Note prudente: à l'origine, j'ai essayé d'installer le package binstar.org OpenCV, comme suggéré. Cette méthode n'inclut cependant pas le codec FFMPEG - c'est-à-dire que vous pourrez peut-être utiliser OpenCV, mais vous ne pourrez pas traiter les vidéos.
L'instruction suivante qui fonctionne pour moi est inspirée de cette vidéo YouTube OpenCV . Jusqu'à présent, je l'ai fait fonctionner à la fois sur mon ordinateur de bureau et portable, à la fois sur les machines 64 bits et sur Windows 8.1.
Télécharger le package OpenCV
Tout d'abord, rendez-vous sur le site officiel d'OpenCV pour télécharger le package OpenCV complet. Choisissez une version que vous aimez (2.x ou 3.x). Je suis sur Python 2.x et OpenCV 3.x - principalement parce que c'est ainsi que les tutoriels OpenCV-Python sont configurés / basés sur.
Dans mon cas, j'ai extrait le package (essentiellement un dossier) directement sur mon lecteur C ( C:\opencv
).
Copiez et collez le fichier cv2.pyd
Le répertoire Anaconda Site-packages (par exemple C:\Users\Johnny\Anaconda\Lib\site-packages
dans mon cas) contient les packages Python que vous pouvez importer. Notre objectif est de copier et coller le cv2.pyd
fichier dans ce répertoire (afin que nous puissions utiliser le import cv2
dans nos codes Python.).
Pour ce faire, copiez le cv2.pyd
fichier ...
À partir de ce répertoire OpenCV (la première partie peut être légèrement différente sur votre machine). Pour Python 3.x, je suppose, changez simplement le 2.x
en 3.x
conséquence.
# 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
Dans ce répertoire Anaconda (la première partie peut être légèrement différente sur votre machine):
C:\Users\Johnny\Anaconda\Lib\site-packages
Après avoir effectué cette étape, nous allons maintenant pouvoir l'utiliser import cv2
en code Python. MAIS, nous devons encore faire un peu plus de travail pour que FFMPEG (codec vidéo) fonctionne (pour nous permettre de faire des choses comme le traitement des vidéos).
Définir les variables d'environnement
Cliquez avec le bouton droit sur "Poste de travail" (ou "Ce PC" sous Windows 8.1) → cliquez avec le bouton gauche sur Propriétés → cliquez avec le bouton gauche sur l'onglet "Avancé" → cliquez avec le bouton gauche sur "Variables d'environnement ...".
Ajoutez une nouvelle variable utilisateur pour pointer vers OpenCV (x86 pour le système 32 bits ou x64 pour le système 64 bits). Je suis actuellement sur une machine 64 bits.
| 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` |
Ajoutez %OPENCV_DIR%\bin
à la variable utilisateur PATH
.
Par exemple, ma PATH
variable utilisateur ressemble à ceci ...
Avant:
C:\Users\Johnny\Anaconda;C:\Users\Johnny\Anaconda\Scripts
Après:
C:\Users\Johnny\Anaconda;C:\Users\Johnny\Anaconda\Scripts;%OPENCV_DIR%\bin
Voilà, c'est fait! FFMPEG est prêt à être utilisé!
Test pour confirmer
Nous devons tester si nous pouvons maintenant les faire dans Anaconda (via Spyder IDE):
- Importer le package OpenCV
- Utilisez l'utilitaire FFMPEG (pour lire / écrire / traiter des vidéos)
Test 1: pouvons-nous importer OpenCV?
Pour confirmer qu'Anaconda est désormais en mesure d'importer le package OpenCV-Python (à savoir, cv2
), émettez-les dans la console IPython:
import cv2
print cv2.__version__
Si le paquet cv2
est importé OK sans erreur et que la cv2
version est imprimée, alors nous sommes tous bons! Voici un instantané:
(source: mathalope.co.uk )
Test 2: pouvons-nous utiliser le codec FFMPEG?
Placez un exemple input_video.mp4
de fichier vidéo dans un répertoire. Nous voulons tester si nous pouvons:
- lire ce
.mp4
fichier vidéo, et
- écrire un nouveau fichier vidéo (peut être
.avi
ou .mp4
etc.)
Pour ce faire, nous devons avoir un code de test Python, appelez-le test.py
. Placez-le dans le même répertoire que l'exemple de input_video.mp4
fichier.
Voici à quoi cela test.py
peut ressembler (j'ai énuméré les codes de version plus récents et plus anciens ici - faites-nous savoir lequel fonctionne / ne fonctionne pas pour vous!).
(Version plus récente ...)
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()
(Ou l'ancienne 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()
Ce test est TRÈS IMPORTANT. Si vous souhaitez traiter des fichiers vidéo, vous devez vous assurer qu'Anaconda / Spyder IDE peut utiliser le FFMPEG (codec vidéo). Il m'a fallu des jours pour le faire fonctionner. Mais j'espère que cela vous prendra beaucoup moins de temps! :)
Remarque: Un autre conseil très important lors de l'utilisation de l'EDI Anaconda Spyder. Assurez-vous de vérifier le répertoire de travail actuel (CWD) !!!
Conclusion
Pour utiliser OpenCV pleinement avec Anaconda (et Spyder IDE), nous devons:
- Téléchargez le package OpenCV sur le site officiel d'OpenCV
- Copiez et collez le
cv2.pyd
dans le répertoire Anaconda site-packages.
- Définissez les variables d'environnement utilisateur pour qu'Anaconda sache où trouver l'utilitaire FFMPEG.
- Faites quelques tests pour confirmer qu'OpenCV et FFMPEG fonctionnent maintenant.
Bonne chance!