我试图通过Anaconda为Python安装OpenCV,但我似乎无法解决这个问题。

我试着

conda install opencv
conda install cv2

我也试着搜索

conda search cv

没有雪茄。我无意中看到这个列出了opencv作为一个包含包:

http://docs.continuum.io/anaconda/pkgs.html

在运行conda info后,我注意到我的版本是3.4.1,但我似乎在网上找不到任何关于这个版本的信息。我对此很困惑。

我是不是遗漏了一些很明显的东西?如果opencv可用于Anaconda的以前版本,那么为什么它不能用于新版本呢?为什么这个链接只显示版本1.9.2的文档?


当前回答

和其他人一样,我在OS X 10.11上使用Python 3.5.1/Anaconda 2.4.0时遇到了问题。

但我在这里找到了一个兼容的软件包:

https://anaconda.org/menpo/opencv3

它可以像这样通过命令行安装:

 conda install -c https://conda.anaconda.org/menpo opencv3

效果很好。这是我第一次在3.x上使用OpenCV !

其他回答

我总结了我现在完全工作的解决方案,OpenCV-Python -如何安装OpenCV-Python包到Anaconda (Windows)。尽管如此,我还是把重要的部分复制粘贴到了这篇文章中。


在撰写本文时,我使用的是Windows 8.1, 64位机器,Anaconda/ Python 2.x。(参见下面的注释-这也适用于Windows 10,可能适用于Python 3。x)。

NOTE 1: as mentioned mentioned by @great_raisin (thank you) in comment section however, this solution appears to also work for Windows 10. NOTE 2: this will probably work for Anaconda/Python 3.x too. If you are using Windows 10 and Anaconda/Python 3.x, and this solution works, please add a comment below. Thanks! (Update: noting from comment "Working on Windows 10") NOTE 3: depending on whether you are using Python 2.x or 3.x, just adjust the print statement accordingly in code snippets. i.e. in Python 3.x it would be print("hello"), and in Python 2.x it would be print "hello".

博士TL;

为了在Anaconda(和Spyder IDE)中完全使用OpenCV,我们需要:

OpenCV软件包请从OpenCV官方网站下载 复制并粘贴cv2。pyd到Anaconda site-packages目录。 设置用户环境变量,以便Anaconda知道在哪里可以找到FFMPEG实用程序。 做一些测试来确认OpenCV和FFMPEG现在可以工作。

(请继续阅读详细说明…)

先决条件

安装水蟒

Anaconda本质上是一个打包良好的Python IDE,附带了大量有用的包,如NumPy、Pandas、IPython Notebook等。科学界似乎到处都在推荐它。检查Anaconda来安装它。

安装OpenCV-Python到Anaconda

注意:我最初尝试按照建议安装binstar.org OpenCV包。然而,该方法不包括FFMPEG编解码器-也就是说,你可以使用OpenCV,但你将无法处理视频。

下面的说明对我来说是受这个OpenCV YouTube视频的启发。到目前为止,我已经让它在我的台式机和笔记本电脑上运行,都是64位的机器和Windows 8.1。

下载OpenCV软件包

首先,去OpenCV官方网站下载完整的OpenCV软件包。选择一个你喜欢的版本。X或3.x)。我用的是Python 2。OpenCV . x和OpenCV 3。x -主要是因为这是OpenCV-Python教程的设置/基础。

在我的情况下,我已经将包(本质上是一个文件夹)直接提取到我的C驱动器(C:\opencv)。

复制粘贴cv2。pyd文件

Anaconda Site-packages目录(例如在我的例子中是C:\Users\Johnny\Anaconda\Lib\ Site-packages)包含您可以导入的Python包。我们的目标是复制粘贴cv2。pyd文件到这个目录(这样我们就可以在Python代码中使用导入cv2。)

要做到这一点,复制cv2。pyd文件…

从这个OpenCV目录(开始部分在你的机器上可能略有不同)。对于Python 3。x,把2改一下。X到3。相应的x。

# 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

到这个Anaconda目录(开始部分在你的机器上可能略有不同):

C:\Users\Johnny\Anaconda\Lib\site-packages

执行这一步之后,我们现在可以在Python代码中使用import cv2了。但是,我们仍然需要做更多的工作来让FFMPEG(视频编解码器)工作(使我们能够做像处理视频这样的事情)。

设置环境变量

右键单击“我的电脑”(或Windows 8.1上的“这台电脑”)→左键单击“属性”→左键单击“高级”选项卡→左键单击“环境变量…”按钮。

添加一个新的用户变量以指向OpenCV(对于32位系统可以是x86,对于64位系统可以是x64)。我目前使用的是64位机器。

| 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`           |

将%OPENCV_DIR%\bin附加到用户变量PATH。

例如,我的PATH用户变量是这样的…

之前:

C:\Users\Johnny\Anaconda;C:\Users\Johnny\Anaconda\Scripts

后:

C:\Users\Johnny\Anaconda;C:\Users\Johnny\Anaconda\Scripts;%OPENCV_DIR%\bin

就这样,我们完了!FFMPEG已经准备好使用了!

测试确认

我们需要测试我们现在是否可以在Anaconda中做这些(通过Spyder IDE):

导入OpenCV包 使用FFMPEG实用程序(读取/写入/处理视频)

测试1:我们能导入OpenCV吗?

要确认Anaconda现在能够导入OpenCV-Python包(即cv2),请在IPython控制台中发出以下命令:

import cv2
print cv2.__version__

如果导入的cv2包没有错误,并且打印出了cv2版本,那么一切都很好!以下是快照:

(来源:mathalope.co.uk)

测试2:我们可以使用FFMPEG编解码器吗?

在一个目录中放置一个示例input_video.mp4视频文件。我们想要测试我们是否可以:

读取这个。mp4视频文件,然后 写出一个新的视频文件(可以是。avi或。mp4等)

为此,我们需要有一个测试Python代码,命名为test.py。将其放置在与示例input_video.mp4文件相同的目录中。

这就是test.py可能的样子(我在这里列出了新版本和旧版本的代码-请让我们知道哪个适合您,哪个不适合!)

(新版本…)

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()

(或者更老的版本…)

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()

这个测试非常重要。如果你想处理视频文件,你需要确保Anaconda / Spyder IDE可以使用FFMPEG(视频编解码器)。我花了好几天时间才把它修好。但是我希望你能少花些时间!:)

注意:在使用Anaconda Spyder IDE时,还有一个非常重要的提示。确保你检查了当前工作目录(CWD)!

结论

为了在Anaconda(和Spyder IDE)中完全使用OpenCV,我们需要:

OpenCV软件包请从OpenCV官方网站下载 复制并粘贴cv2。pyd到Anaconda site-packages目录。 设置用户环境变量,以便Anaconda知道在哪里可以找到FFMPEG实用程序。 做一些测试来确认OpenCV和FFMPEG现在可以工作。

好运!

我也遇到过同样的问题,但我现在已经解决了。这就是我所做的:

首先在命令提示符中输入conda install -c https://conda.binstar.org/menpo opencv,然后找到路径Anaconda\pkgs\opencv-2.4.9.1-np19py27_0\Lib\site-packages。现在将这里的所有文件复制到Anaconda\Lib\site-packages中。现在你可以在Python中使用OpenCV了。

复制cv2。将pyd文件拷贝到C:\Users\USERNAME\Anaconda2\Lib目录下。

得到cv2。Pyd文件在这个链接(https://sourceforge.net/projects/opencvlibrary/files/)。

cv2。pyd位于c:\ users \ username \ desktop \opencv\build\python\2.7\x64。

请按照以下顺序执行以下命令:-

conda update anaconda-navigator
conda update navigator-updater
pip install opencv-python

使用conda安装OpenCV包,执行以下命令:

conda install -c menpo opencv3=3.1.0

https://anaconda.org/menpo/opencv3