web-dev-qa-db-fra.com

Comment utiliser OpenCV en Python?

Je viens d'installer OpenCV sur ma machine Windows 7. En conséquence, j'obtiens un nouveau répertoire:

C:\OpenCV2.2\Python2.7\Lib\site-packages

Dans ce répertoire, j'ai deux fichiers: cv.lib et cv.pyd.

Ensuite, j'essaie d'utiliser le opencv de Python. Je fais ce qui suit:

import sys
sys.path.append('C:\OpenCV2.2\Python2.7\Lib\site-packages')
import cv

Par conséquent, j'obtiens le message d'erreur suivant:

File "<stdin>", line 1, in <module>
ImportError: DLL load failed: The specified module could not be found.

Qu'est-ce que je fais mal?

[~ # ~] ajouté [~ # ~]

Comme il était recommandé ici , j'ai copié le contenu de C:\OpenCV2.0\Python2.6\Lib\site-packages à la C:\Python26\Lib\site-packages. Cela n'a pas aidé.

AJOUTÉ 2

Mes variables d'environnement ont les valeurs suivantes:

Path=C:\Program Files\MiKTex\miktex\bin;C:\OpenCV2.2\bin;C:\Python26;
PYTHONPATH=C:\OpenCV2.2\Python2.7\Lib\site-packages

Dois-je changer quelque chose? Dois-je ajouter quelque chose?

AJOUTÉ 3

Je pense que ma question est générale: comment utiliser une bibliothèque? J'ai probablement besoin de trouver un fichier * .ddl quelque part? Ensuite, je dois utiliser le nom du répertoire contenant ce fichier comme valeur pour certaines variables d'environnement? Ou peut-être que je dois utiliser sys.addpath? J'ai également besoin de savoir comment la façon d'appeler la bibliothèque est liée au nom du fichier qui contient la bibliothèque.

AJOUTÉ 4

Il est intéressant de noter que lorsque je tape import cv, Je reçois:

ImportError: DLL load failed: The specified module could not be found.

Mais quand je tape import opencv Je reçois:

ImportError: No module named opencv

AJOUTÉ 5

Il a été suggéré d'utiliser la version incohérente de python. Plus en détail, OpenCV essaie d'utiliser Python2.7 et j'avais Python2.6. J'ai donc installé Python 2.7. Cela fait la différence. Maintenant, je n'ai plus l'ancien message d'erreur, mais j'en ai un nouveau:

ImportError: numpy.core.multiarray failed to import
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: numpy.core.multiarray failed to import

AJOUTÉ 6

J'ai réussi à résoudre le problème en installant numpy. Cela a pris un certain temps car je n'avais pas réalisé qu'il existe différents installateurs numpy correspondant aux différentes versions de Python. Certains détails peuvent être trouvés dans ma réponse à ma propre question (voir ci-dessous).

30
Roman

Le problème a été résolu. Les étapes suivantes ont été effectuées:

  1. Une nouvelle version de python (version 2.7) a été installée.
  2. Après cela, je n'ai toujours pas pu exécuter OpenCV car j'ai eu des problèmes avec la bibliothèque numpy.
  3. Je suis fatigué d'installer numpy mais le programme d'installation n'a pas vu ma nouvelle version de Python.
  4. J'ai supprimé l'ancienne version de Python ainsi que les liens vers l'ancienne version dans le système Path vatriable.
  5. Après que l'installateur numpy n'a pas pu terminer l'installation.
  6. J'ai réalisé que je dois exécuter un autre programme d'installation numpy associé au Python 2.7. Il peut être trouvé ici .
  7. Enfin, tout a fonctionné. J'ai pu "importer du cv".
15
Roman

Je soupçonne que vous avez le même problème que j'ai rencontré. Si vous disposez d'une version 64 bits de Python, il ne peut pas charger de DLL 32 bits. OpenCV ne livre actuellement que des binaires 32 bits. Si vous voulez des fichiers .pyd et .dll 64 bits, vous devez les compiler vous-même. Il y a quelques instructions sur le Wiki OpenCV, mais ce n'est pas pour les faibles de cœur. Attendez-vous à avoir un investissement en temps substantiel.

La solution la plus simple consiste à:

  1. Désinstaller Python 64 bits
  2. Installez une distribution 32 bits.

La distribution PythonXY inclut pyopencv - un bon ensemble de hooks OpenCV. La seule limitation est qu'il s'agit de 32 bits, alors ne prévoyez pas de traiter des données astronomiques en gigapixels avec! ;)

Si vous devez avoir la version 64 bits, suivez ces instructions pour que OpenCV se compile avec Visual Studio 2010. Il y a une discussion sur stackoverflow qui décrit la construction 64- applications bit avec VC Express.

EDIT: OpenCV est maintenant livré avec des binaires 64 bits Python. Les fichiers .dll doivent aller quelque part sur votre chemin (Je les mets dans le dossier scripts), et les fichiers .pyd vont dans votre répertoire site-packages.

5
Carl F.

J'ai eu du mal à interfacer OpenCV avec Python, et je cherchais de l'aide partout. Voici ce qui a fonctionné pour moi. J'ai essentiellement suivi ce post: http://opencvpython.blogspot.com/2012/05/install-opencv-in-windows-for-python.html . Après avoir téléchargé et extrait OpenCV 2.4.6, vous obtenez essentiellement un dossier appelé "opencv" avec un tas de trucs dedans. Accédez à build-> python-> 2.7. A l'intérieur, il n'y a qu'un seul fichier appelé "cv2.pyd". J'ai copié ce fichier et l'ai collé dans "python-2.7.5\Lib\site-packages". J'utilise en fait l'IDE Spyder, et cela fonctionne très bien. Dans l'interpréteur python, taper "import cv" a fonctionné pour moi.

2
Kaccie Li

Vous devriez peut-être modifier votre variable d'environnement
faites un clic droit sur "Poste de travail" ou quelque chose comme ça, cliquez sur les propriétés.

Dans la fenêtre des propriétés, cliquez sur l'onglet Avancé.
Ensuite, le bouton des variables d'environnement.
Modifiez le chemin.

0
Pierre Guilbert