How to use OpenCV in Python?

别等时光非礼了梦想. 提交于 2020-01-09 09:10:09

问题


I have just installed OpenCV on my Windows 7 machine. As a result, I get a new directory:

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

In this directory, I have two files: cv.lib and cv.pyd.

Then I try to use the opencv from Python. I do the following:

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

As a result I get the following error message:

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

What am I doing wrong?

ADDED

As it was recommended here, I have copied content of C:\OpenCV2.0\Python2.6\Lib\site-packages to the C:\Python26\Lib\site-packages. It did not help.

ADDED 2

My environment variables have the following values:

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

Do I need to change something? Do I need to add something?

ADDED 3

I think my question is general: How to use a library? Probably I need to find a *.ddl file somewhere? Then I need to use the name of the directory containing this file as a value to some environment variables? Or maybe I need to use sys.addpath? I also need to know how the way to call the library is related to the name of the file that contains the library.

ADDED 4

It is interesting that when I type import cv, I get:

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

But when I type import opencv I get:

ImportError: No module named opencv

ADDED 5

It has been suggested that I usthe e inconsistent version of python. In more details, OpenCV tries to use Python2.7 and I had Python2.6. So, I have installed Python 2.7. It makes difference. Now I do not have the old error message, but I have a new one:

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

ADDED 6

I have managed to resolve the problem by installing numpy. It took some time because I did not realized that there are different numpy installer corresponding to different versions of Python. Some details can be found in my answer to my own question (see bellow).


回答1:


The problem was resolved. The following steps has been done:

  1. A new version of python (version 2.7) has been installed.
  2. After that I still was unable to run OpenCV because I had some problems with the numpy library.
  3. I tired to install numpy but the installer did not see my new version of the Python.
  4. I deleted the old version of Python as well as links to the old version in the Path system vatriable.
  5. After that numpy installer was not able to finish the installation.
  6. I have realized that I need to run another numpy installer that is associated with the Python 2.7. It can be found here.
  7. Finally everything worked. I was able to "import cv".



回答2:


I suspect you have the same problem I've run into. If you have a 64-bit version of Python, it cannot load 32-bit DLLs. OpenCV currently only ships 32-bit binaries. If you want 64-bit .pyd and .dll files, you have to compile them yourself. There are some instructions on the OpenCV Wiki, but it's not for the faint of heart. Expect to have a substantial time investment.

The easiest solution is to:

  1. Uninstall 64-bit Python
  2. Install a 32-bit distribution.

The PythonXY distribution includes pyopencv -- a good set of OpenCV hooks. The only limitation is that it's 32-bit, so don't make plans to process gigapixel astronomy data with it! ;)

If you must have the 64-bit version, follow these instructions to get it OpenCV to compile with Visual Studio 2010. There's a discussion on stackoverflow that describes building 64-bit apps with VC Express.

EDIT: OpenCV now ships with 64-bit Python binaries. The .dll files need to go somewhere in your path (I put them in the scripts folder), and the .pyd files go in your site-packages directory.




回答3:


I had trouble interfacing OpenCV with Python, and I was looking all over the place for help. Here's what worked for me. I basically followed this post: http://opencvpython.blogspot.com/2012/05/install-opencv-in-windows-for-python.html. After downloading and extracting OpenCV 2.4.6, you basically get a folder called "opencv" with a bunch of stuff in it. Navigate to build->python->2.7. Inside, there is only one file called "cv2.pyd". I copied this file and pasted it in "python-2.7.5\Lib\site-packages". I'm actually using the Spyder IDE, and it works fine. In the python interpreter, typing in "import cv" worked for me.




回答4:


Maybe you should edit your environment variable
right click on the "My Computer" or something like this, click on properties.

In the properties window click on the Advanced tab.
Then, the environment variables button.
Change the path.



来源:https://stackoverflow.com/questions/5030362/how-to-use-opencv-in-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!