如何通过Conda安装Python OpenCV?

Che*_*het 202 python opencv anaconda conda

我正在尝试通过Anaconda安装OpenCV for Python ,但我似乎无法解决这个问题.

我试过了

conda install opencv
conda install cv2
Run Code Online (Sandbox Code Playgroud)

我也尝试过搜索

conda search cv
Run Code Online (Sandbox Code Playgroud)

没有雪茄.我跑过这个列出opencv了一个包含的包:

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

运行后conda info我注意到我的版本是3.4.1,但我似乎无法在线找到有关此版本的任何信息.我对此非常困惑.

我错过了一些非常明显的东西吗?如果opencv可用于以前版本的Anaconda,那么为什么它不适用于较新版本?为什么这个链接只显示版本1.9.2的文档?

小智 207

您可以使用binstar安装它:

conda install -c menpo opencv
Run Code Online (Sandbox Code Playgroud)

  • 我尝试使用此方法安装OpenCV,但遇到一个问题,当我输入导入cv我得到错误DLL加载失败:找不到指定的模块.我想知道你是否在安装过程中遇到了这个问题. (8认同)
  • 在Windows 7上为我工作 (5认同)
  • 这适用于OSX 10.10.5与conda 13.8.4唯一的"次要"问题是它需要numpy 1.10.1这是好的但是我运行conda update --all并且一些库需要降级到1.9才能运行. (2认同)
  • 这在Win10 64bit上与Anaconda 2.7一起运行良好,而`conda install opencv`没有. (2认同)

Job*_*gan 110

这对我有用(在Ubuntu和conda 3.18.3上):

conda install --channel https://conda.anaconda.org/menpo opencv3
Run Code Online (Sandbox Code Playgroud)

上面的命令是我运行以下内容时向我显示的内容:

anaconda show menpo/opencv3
Run Code Online (Sandbox Code Playgroud)

这是输出:

To install this package with conda run:
     conda install --channel https://conda.anaconda.org/menpo opencv3
Run Code Online (Sandbox Code Playgroud)

我在python中测试了以下内容而没有错误:

>>> import cv2
>>>
Run Code Online (Sandbox Code Playgroud)

  • 尝试了许多其他方法来安装opencv3,这最终在OSX 10.10.5上对我有用 (6认同)
  • 在Windows 10上也为我工作过 (3认同)
  • 为什么你安装了“opencv3”但导入了“cv2”?为什么版本号不同? (3认同)
  • 先生你先生吧!这适用于Ubuntu 14.04,Anaconda和Python 3.5 (2认同)
  • 有趣的是,这将安装一个~2.3 MB的cv2.pyd.但是如果你去openCV网站并下载二进制文件,那么opencv2.pyd就是> 44MB.此外,两个pyd文件都通过了'import'测试.所以我想知道为什么anaconda repo要小得多? (2认同)

Rus*_*art 103

conda install opencv目前在UNIX/python2上适用于我.在咨询其他解决方案之前,这是值得尝试的.

  • 不是用python 3.4:`错误:不满意的包规范 (9认同)
  • 在Ubuntu 14.04上使用"conda install opencv"时,使用Anaconda 2.7和PyCharm会在我使用'cv2.imshow('name',img)时发出错误,指示需要使用"GTK + 2.x"支持重建包,所以对于在ubuntu上使用PyCharm作为IDE的人来说似乎没什么用. (7认同)
  • 在Ubuntu 14.04上它对我有用.:-) 谢谢! (3认同)
  • 适用于 Windows 10、Python 3.7。您可能需要以管理员权限运行 cmd。 (2认同)

Atl*_*as7 72

我总结了我现在完全正常工作的解决方案,OpenCV-Python - 如何将OpenCV-Python软件包安装到Anaconda(Windows).不过,我已经将重要的内容复制并粘贴到这篇文章中.


目前,我使用Windows 8.1和64位机器,Anaconda作为Python 2.x的IDE.

注意:如果您使用的是Windows 10(或更高版本),如果以下说明有效,请您添加评论吗?这将有助于社区!:-)

TL; DR

要与Anaconda(和Spyder IDE)完全一起使用OpenCV,我们需要:

  1. 从OpenCV 官方网站下载OpenCV软件包
  2. 复制并粘贴print到Anaconda site-packages目录.
  3. 设置用户环境变量,以便Anaconda知道在哪里可以找到FFMPEG实用程序.
  4. 做一些测试以确认OpenCV和FFMPEG现在正在运行.

(继续阅读详细说明......)

条件

安装Anaconda

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软件包.选择你喜欢的版本(2.x或3.x).我在Python 2.x和OpenCV 3.x上 - 主要是因为这是OpenCV-Python教程的设置/基础.

在我的情况下,我已经将包(基本上是一个文件夹)直接解压缩到我的C盘(print("hello")).

复制并粘贴cv2.pyd文件

Anaconda Site-packages目录(例如print "hello"在我的例子中)包含您可以导入的Python包.我们的目标是将cv2.pyd文件复制并粘贴到此目录中(以便我们可以C:\opencv在Python代码中使用它).

为此,请复制C:\Users\Johnny\Anaconda\Lib\site-packages文件...

从这个OpenCV目录(您的计算机上的开头部分可能略有不同):

# 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
Run Code Online (Sandbox Code Playgroud)

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

C:\Users\Johnny\Anaconda\Lib\site-packages
Run Code Online (Sandbox Code Playgroud)

执行此步骤后,我们现在可以cv2.pyd在Python代码中使用.但是,我们仍然需要做更多工作才能使FFMPEG(视频编解码器)工作(使我们能够处理视频等事情).

设置环境变量

右键单击"我的电脑"(或Windows 8.1上的"此PC")→左键单击属性 →左键单击"高级"选项卡→左键单击"环境变量..."按钮.

添加新的用户变量以指向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`           |
Run Code Online (Sandbox Code Playgroud)

附加import cv2到用户变量cv2.pyd.

例如,我的2.x用户变量看起来像这样......

之前:

C:\Users\Johnny\Anaconda;C:\Users\Johnny\Anaconda\Scripts
Run Code Online (Sandbox Code Playgroud)

后:

C:\Users\Johnny\Anaconda;C:\Users\Johnny\Anaconda\Scripts;%OPENCV_DIR%\bin
Run Code Online (Sandbox Code Playgroud)

这就是我们完成的!FFMPEG已准备好使用!

测试确认

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

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

测试1:我们可以导入OpenCV吗?

要确认Anaconda现在能够导入OpenCV-Python包(即3.x),请在IPython控制台中发出:

import cv2
print cv2.__version__
Run Code Online (Sandbox Code Playgroud)

如果包import cv2被导入OK没有错误,并%OPENCV_DIR%\bin打印出版本,那么我们都很好!这是一个快照:

import-cv2-ok-in-anaconda-python-2.png http://mathalope.co.uk/wp-content/uploads/2015/07/import-cv2-ok-in-anaconda-python-2.png

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

将示例PATH视频文件放在目录中.我们想测试一下我们是否可以:

  • 阅读此PATH视频文件,和
  • 写出一个新的视频文件(可以是cv2cv2等)

要做到这一点,我们需要有一个测试Python代码,调用它cv2.将其放在与示例input_video.mp4文件相同的目录中.

.mp4可能是这样的(我在这里列出了新旧版本代码 - 让我们知道哪一个适用于你/哪个不适合你!):

(较新版本......)

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()
Run Code Online (Sandbox Code Playgroud)

(或旧版本......)

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()
Run Code Online (Sandbox Code Playgroud)

这项测试非常重要.如果您想处理视频文件,则需要确保Anaconda/Spyder IDE可以使用FFMPEG(视频编解码器).我花了几天时间让它运转起来.但我希望这会花费你更少的时间!:)

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

结论

要与Anaconda(和Spyder IDE)完全一起使用OpenCV,我们需要:

  1. 从OpenCV 官方网站下载OpenCV软件包
  2. 复制并粘贴.avi到Anaconda site-packages目录.
  3. 设置用户环境变量,以便Anaconda知道在哪里可以找到FFMPEG实用程序.
  4. 做一些测试以确认OpenCV和FFMPEG现在正在运行.

祝好运!

  • 精彩回答!请注意,如果您使用的是conda环境,则应将`cv2.pyd`添加到环境的`site-packages`文件夹中(例如`C:\ Users\cod3monk3y\Anaconda\envs\foo\Lib\site-packages\cv2 .pyd`).另外值得注意的是,.pyd文件是[只是一个Windows DLL](http://stackoverflow.com/q/8822335/1174169),具有与Python完美配合的特定界面. (4认同)
  • 这是不使用 conda 安装 opencv 的方法。-1 (2认同)

小智 30

它似乎不再包含您链接的页面opencv.(有趣的是,我确实记得它也包括在前一点.)

无论如何,将OpenCV安装到Anaconda中虽然无法通过conda安装,但这一点非常简单.你只需要下载一个文件.

  1. http://opencv.org/downloads.html下载OpenCV 并解压缩
  2. 从解压缩的文件夹中,将文件从解压缩的目录中复制:opencv/build/python/2.7 /(x86或x64,具体取决于您的Anaconda版本)/cv2.pyd到您的Anaconda site-packages目录,例如C:\蟒蛇\ LIB \站点包
  3. 要使FFmpeg opencv工作,您必须将FFmpeg所在的目录添加到路径中(例如,opencv/sources/3rdparty/ffmpeg).然后,您必须在该文件夹中找到DLL文件(例如,opencv_ffmpeg_64.dll)并将其复制或重命名为包含opencv您要安装的版本的文件名(例如,opencv_ffmpeg249_64),用于2.4.9.

现在在Python提示符下,您应该能够键入"import cv2"...以验证它是否有效,键入"print cv2 .__ version__",它应该打印出您下载的OpenCV版本.

  • 有人还创建了一个binstar软件包,您现在可以通过Conda下载:https://binstar.org/menpo/opencv/files (7认同)
  • @eculeus你能详细说明验证ffmpeg吗?我可以从我的网络摄像头读取,但我无法读/写视频文件.我查看了目录3rdparty/ffmpeg并将dll重命名为:opencv_ffmpeg300_64.dll你提到ffmpeg应该在路径中.你的意思是Windows PATH或python中的sys.path的路径? (4认同)

Tai*_*oye 19

要在Anaconda中安装OpenCV,请启动Anaconda命令提示符并安装OpenCV

conda install -c https://conda.anaconda.org/menpo opencv3
Run Code Online (Sandbox Code Playgroud)

测试它在你的Anaconda Spyder或IPython控制台中是否有效

import cv2
Run Code Online (Sandbox Code Playgroud)

您还可以使用以下方法检查已安装的版本

cv2.__version__
Run Code Online (Sandbox Code Playgroud)


Thi*_*cao 18

您可以通过在Anaconda命令提示符中运行以下任何命令来安装OpenCV 3:

conda install -c menpo opencv3

conda install -c conda-forge opencv
Run Code Online (Sandbox Code Playgroud)

不再支持mempo频道.

它适用于Windows 10和Ubuntu 14.

资源:

https://anaconda.org/menpo/opencv3

https://github.com/conda-forge/opencv-feedstock

  • (这是重复的现有答案,有编辑,不确定哪个先出现)不再支持 menpo repo,https://github.com/menpo/conda-opencv3 ;现在推荐使用 conda-forge https://github.com/conda-forge/opencv-feedstock (2认同)

Ada*_*son 18

在2019年5月,答案如下:

conda update freetype
conda install opencv
Run Code Online (Sandbox Code Playgroud)

这将更新libfreetype.6.dylib为24.0.0兼容性并安装OpenCV 4.1.0。-c conda-forge虽然上面的方法不起作用,但您无需指定通道。

编辑:

请务必坚持使用Python 3.6,它现在会让您的生活更轻松。

  • @mLstudent33 该命令在 Bash 中运行,Anaconda 安装在本地文件夹中,因此不需要 `sudo`。我会避免将 `conda` 作为 `sudo` 运行,除非你为多个用户管理系统范围的安装,我也是这样做的。在这种情况下,我通常会小心地激活 conda 环境,然后从该环境的 `/bin` 文件夹中激活 `sudo ./conda ...` 作为额外的预防措施,因为 `sudo` 即使在使用`-E` 标志。 (2认同)

Mun*_*san 13

这适用于Windows

opencv

conda-forge

  • menpo仓库不再受支持,https://github.com/menpo/conda-opencv3; 现在建议使用conda-forge https://github.com/conda-forge/opencv-feedstock (3认同)
  • @michael 在这一点上真的 conda-forge 是正确的答案,它几乎被埋没在过时的答案中。:( (2认同)

小智 10

就我而言,我有 python 3.9,我在 conda 环境中执行了此操作,并且它有效:

pip install opencv-python==3.4.15.55
pip install opencv-contrib-python==3.4.15.55
Run Code Online (Sandbox Code Playgroud)


小智 8

我有完全相同的问题,无法让conda安装OpenCV.但是,我设法使用您在此站点上找到的OpenCV安装程序安装它:

http://www.lfd.uci.edu/~gohlke/pythonlibs/

他的文件是"Wheel"whl文件,可以用pip安装,例如

pip install SomePackage-1.0-py2.py3-none-any.whl

在命令窗口中.在为我执行此命令后,它直接与Spyder一起使用.我和其他套餐有过相同的经历,上面的加州大学欧文分校是一个金矿.


小智 8

我在命令提示符下输入以下命令:

conda install -c menpo opencv=2.4.11
Run Code Online (Sandbox Code Playgroud)

这对我有用!!!


Cra*_*psy 8

要在Windows-64和Python 3.5上使用conda安装OpenCv,唯一适合我的方法是:

conda install -c conda-forge opencv=3.1.0 
Run Code Online (Sandbox Code Playgroud)


Dan*_*yen 6

和其他人一样,我在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
Run Code Online (Sandbox Code Playgroud)

工作就像一个魅力.我第一次让OpenCV在3.x上工作!


小智 6

我认为跨平台和跨Anaconda各个版本的最简单的选择是

#Run Anaconda Prompt as an Administrator (on Windows) & execute the command below
#(you may need to use   sudo   on a Unix-Based or Mac system 
#to have the needed permissions)

conda install -c conda-forge opencv
Run Code Online (Sandbox Code Playgroud)


小智 6

它适用于 anaconda3 windows 10 我已经在 2019 年 12 月 5 日下载了它。

首先,使用这个命令:

pip install opencv-contrib-python

之后,Windows 将请求许可并重试:

pip install opencv-contrib-python --user

看看这个它有效!!

使用 anaconda 的 openCV 使用 anaconda 的 openCV

  • 有什么理由这样做而不是简单地从 conda-forge 安装它?顺便说一句,使用基础环境进行开发是一个坏主意,就不要碰它。 (2认同)

小智 6

要在不降级的情况下安装 opencv,只需在终端中输入此命令,特别是 Linux Mint 或基于 Ubuntu 的发行版的用户

conda install -c conda-forge opencv
Run Code Online (Sandbox Code Playgroud)

因此,就这样吧,我很确定这不会让您失望。


小智 5

要使用conda安装OpenCV软件包,请运行:

conda install -c menpo opencv3=3.1.0
Run Code Online (Sandbox Code Playgroud)

https://anaconda.org/menpo/opencv3


Foo*_*167 5

仅Windows解决方案。适用于Python 3.x的OpenCV 3.x pip安装

下载.whl文件(如果您使用的是Python MN,则为cp MN)。contrib包括OpenCV-extra软件包。例如,假设您具有Python 3.6和Windows 64位,则可以下载opencv_python?3.2.0 + contrib?cp36?cp36m?win_amd64.whl

从命令提示符键入:

pip install opencv_python?3.2.0+contrib?cp36?cp36m?win_amd64.whl
Run Code Online (Sandbox Code Playgroud)

您将在您的包中conda listopencv-python 3.2.0+contrib <pip>

现在您可以测试它了(没有错误):

>>> import cv2
>>>
Run Code Online (Sandbox Code Playgroud)

我在其中获取信息的原始源页面在这里


oul*_*enz 5

在Linux上,正如这里所讨论的,目前获得opencv的最佳方法是来自conda-forge的loopbio:

conda install -c loopbio -c conda-forge -c pkgw-forge ffmpeg-feature ffmpeg gtk2 opencv
Run Code Online (Sandbox Code Playgroud)

如果你有'现代CPU',那么还存在一个编译版本"启用所有现代CPU指令集扩展[...]和libjpeg-turbo":

conda install -c loopbio -c conda-forge -c pkgw-forge ffmpeg-feature ffmpeg gtk2 opencv-turbo`
Run Code Online (Sandbox Code Playgroud)

其他答案中提到的两个解决方案不能无条件地工作:

  • 您通过的conda conda install opencvpip install opencv-python没有gtk2支持,因此您无法显示图像imshow.
  • 由Menpo(conda install -c menpo opencv3)建立的Conda 有gtk2支持,但是
    • 他们只为Python 3.5构建了OpenCV 3.2,而不是Python 3.6
    • Ubuntu的16.10已过时libpng12,试图在导致丢失的依赖,并出现以下错误import cv2:ImportError: libpng12.so.0: cannot open shared object file: No such file or directory作为讨论这里

编辑: @Yamaneko指出,截至2017年6月14日,"loopbio的OpenCV版本3.2.0存在问题.它默默无法读取和写入视频.这是由于上游OpenCV问题与老GCC.更多细节在这里.有一个公关正在解决这个问题."


sal*_*hin 5

一个简单而直接的解决方案是在安装opencv3之前先安装python3.5

conda install python=3.5
Run Code Online (Sandbox Code Playgroud)

其次是

conda install --channel https://conda.anaconda.org/menpo opencv3 
Run Code Online (Sandbox Code Playgroud)


kia*_*tng 5

我刚刚在 Windows 10 中安装了 conda 4.7.11。OpenCV 可以很容易地安装在 Anaconda Navigator 中。启动 Navigator 后,单击左侧面板上的Environments。在顶部下拉列表中,选择Not installed。然后搜索py-opencv,勾选左侧的复选框进行安装。它将安装依赖包libopencv。我import cv2在 Spyder 中使用它来访问它。

在此处输入图片说明