如何通过Conda安装Python OpenCV?

How do I install Python OpenCV through Conda?

我正在尝试通过Anaconda安装OpenCV for Python,但我似乎无法弄清楚这一点。

我试过了

1
2
conda install opencv
conda install cv2

我也尝试过搜索

1
conda search cv

没有雪茄。 我跑过这个列出opencv作为包含的包:

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

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

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


您可以使用binstar安装它:

1
conda install -c menpo opencv


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

1
conda install --channel https://conda.anaconda.org/menpo opencv3

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

1
anaconda show menpo/opencv3

这是输出:

1
2
To install this package with conda run:
     conda install --channel https://conda.anaconda.org/menpo opencv3

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

1
2
>>> import cv2
>>>


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


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

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

  • 注1:正如@great_raisin(谢谢)在评论部分提到的那样,这个解决方案似乎也适用于Windows 10。

  • 注2:这也可能适用于Anaconda / Python 3.x.如果您使用的是Windows 10和Anaconda / Python 3.x,并且此解决方案有效,请在下面添加评论。谢谢!

  • 注3:根据您使用的是Python 2.x还是3.x,只需在代码片段中相应地调整print语句即可。即在Python 3.x中它将是print("hello"),而在Python 2.x中它将是print"hello"

  • TL; DR

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

  • 从OpenCV官方网站下载OpenCV软件包
  • cv2.pyd复制并粘贴到Anaconda site-packages目录。
  • 设置用户环境变量,以便Anaconda知道在哪里可以找到FFMPEG实用程序。
  • 做一些测试以确认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盘(C:\opencv)。

    复制并粘贴cv2.pyd文件

    Anaconda Site-packages目录(例如我的C:\Users\Johnny\Anaconda\Lib\site-packages)包含您可以导入的Python包。我们的目标是将cv2.pyd文件复制并粘贴到此目录中(以便我们可以在Python代码中使用import cv2)。

    为此,请复制cv2.pyd文件...

    从这个OpenCV目录(您的计算机上的开头部分可能略有不同)。对于Python 3.x,我想,只需将2.x更改为3.x即可。

    1
    2
    3
    4
    5
    # 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目录(你的机器上的起始部分可能略有不同):

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

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

    设置环境变量

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

    添加新的用户变量以指向OpenCV(适用于32位系统的x86或适用于64位系统的x64)。我目前在64位机器上。

    1
    2
    3
    4
    | 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用户变量看起来像这样......

    之前:

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

    后:

    1
    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控制台中发出:

    1
    2
    import cv2
    print cv2.__version__

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

    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编解码器吗?

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

  • 阅读此.mp4视频文件,和
  • 写出一个新的视频文件(可以是.avi.mp4等)
  • 要做到这一点,我们需要有一个测试Python代码,称之为test.py。将其放在与示例input_video.mp4文件相同的目录中。

    这就是test.py的样子(我在这里列出了新版和旧版的代码 - 请告诉我们哪一个适用于你/哪个不适合你!)。

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    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()

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    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现在正在运行。
  • 祝好运!

    好。


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

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

  • 从http://opencv.org/downloads.html下载OpenCV并解压缩
  • 从解压缩的文件夹中,将文件从解压缩的目录中复制:opencv / build / python / 2.7 /(x86或x64,具体取决于您的Anaconda版本)/cv2.pyd到您的Anaconda site-packages目录,例如C:Python LIB 站点包
  • 要使opencv中的FFmpeg工作,您必须将FFmpeg所在的目录添加到路径中(例如,opencv / sources / 3rdparty / ffmpeg)。然后,您必须在该文件夹中找到DLL文件(例如,opencv_ffmpeg_64.dll)并将其复制或重命名为包含您要安装的opencv版本的文件名(例如,opencv_ffmpeg249_64),用于2.4.9。
  • 现在在Python提示符下,您应该能够键入"import cv2"...以验证它是否有效,键入"print cv2.version",它应该打印出您下载的OpenCV版本。


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

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

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

    1
    import cv2

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

    1
    cv2.__version__


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

    1
    2
    3
    conda install -c menpo opencv3

    conda install -c conda-forge opencv

    不再支持mempo频道。

    它适用于Windows 10和Ubuntu 14。

    资源:

    https://anaconda.org/menpo/opencv3

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


    以下从conda-forge安装opencv(注意:在Windows上试过)

    1
    2
    conda config --add channels conda-forge
    conda install opencv


    2019年5月,答案如下:

    1
    2
    conda update freetype
    conda install opencv

    这会将libfreetype.6.dylib更新为24.0.0兼容性并安装OpenCV 4.1.0。我不需要使用-c conda-forge来指定频道,但如果上述情况不起作用,则可以。


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

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

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

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

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


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

    1
    conda install -c menpo opencv=2.4.11

    这对我有用!!!


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

    1
    conda install -c conda-forge opencv=3.1.0

    和其他人一样,我在OS X 10.11上遇到过Python 3.5.1 / Anaconda 2.4.0的问题。

    但我在这里找到了兼容的包:

    https://anaconda.org/menpo/opencv3

    它可以通过命令行安装,如下所示:

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

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


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

    1
    2
    3
    4
    5
    #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


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

    下载.whl文件(cpMN,你有Python M.N)。 contrib包括OpenCV-extra软件包。例如,假设你有Python 3.6和Windows 64位,你可以下载opencv_python?3.2.0 + contrib?cp36?cp36m?win_amd64.whl

    从命令提示符下键入:

    1
    pip install opencv_python?3.2.0+contrib?cp36?cp36m?win_amd64.whl

    您将在conda listopencv-python 3.2.0+contrib 中找到一个包

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

    1
    2
    >>> import cv2
    >>>

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


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

    1
    conda install -c loopbio -c conda-forge -c pkgw-forge ffmpeg-feature ffmpeg gtk2 opencv

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

    1
    conda install -c loopbio -c conda-forge -c pkgw-forge ffmpeg-feature ffmpeg gtk2 opencv-turbo`

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

    • 您通过conda install opencvpip install opencv-python获得的conda没有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。更多细节在这里。有一个公关正在解决这个问题。"


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

    1
    conda install python=3.5

    其次是

    1
    conda install --channel https://conda.anaconda.org/menpo opencv3


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

    1
    conda install -c menpo opencv3=3.1.0

    https://anaconda.org/menpo/opencv3


    以下命令也适用于我。我在Anaconda中使用嵌入式IPython笔记本。

    1
    conda install -c https://conda.binstar.org/menpo opencv


    如果conda install opencvconda install -c https://conda.binstar.org/menpo opencv不起作用,您可以尝试从源代码编译。

    从http://opencv.org/downloads.html下载源代码,按照http://docs.opencv.org/2.4/doc/tutorials/introduction/linux_install/linux_install.html中的安装说明操作,(也许你可以跳转直接到最后一部分,"使用CMake从源构建OpenCV ...",更改cmake命令如下:

    1
    2
    3
    4
    5
    6
    mkdir release
    cd release
    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/home/**/env/opencv-2.4.10 -D BUILD_NEW_PYTHON_SUPPORT=ON -D PYTHON_EXECUTABLE=/home/**/env/anaconda/bin/python -D PYTHON_INCLUDE_DIR=/home/**/env/anaconda/include/python2.7 -D PYTHON_LIBRARY=/home/**/env/anaconda/lib/libpython2.7.so -D PYTHON_PACKAGES_PATH=/home/**/env/anaconda/lib/python2.7/site-packages -D PYTHON_NUMPY_INCLUDE_DIRS=/home/**/env/anaconda/lib/python2.7/site-packages/numpy/core/include ..

    make -j4
    make install

    你会在anaconda/lib/python2.7/site-packages中找到cv2.so.

    然后:

    1
    2
    import cv2
    print cv2.__version__

    它将打印出2.4.10

    我的环境是GCC 4.4.6,Python 2.7(anaconda)和opencv-2.4.10。


    在Anaconda窗口中安装当前版本的OpenCV 3.3的正确命令:

    1
    conda install -c conda-forge opencv

    要么

    1
    conda install -c conda-forge/label/broken opencv

    对于3.2使用此:

    1
    conda install -c menpo opencv3

    1
    conda install -c https://conda.anaconda.org/menpo 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


    我刚试过两台Win32 Python 3.5计算机。起初,我能够conda install opencv,但它没有工作,也没有来自menpp的版本,但这样做:

    1
    conda install -c https://conda.binstar.org/conda-forge opencv


    OP没有指定他绝对需要使用conda命令的解决方案,我认为使用Anaconda Navigator应用程序安装opencv是最简单的:

  • 打开Anaconda Navigator(例如,通过操作系统的开始菜单),
  • 单击左侧的"环境"选项卡。
  • 在此选项卡旁边,选择要在其上安装opencv的conda环境(如果没有特定的环境,请选择默认的base (root)环境)。
  • 在右侧,在下拉列表中选择Not installed,然后在过滤器框中键入"opencv",
  • 选择列表中的'opencv'包,
  • 点击应用程序底部的"应用"。 Anaconda Navigator现在将为您安装opencv。

  • 我像这样安装它:

    1
    $ conda install --channel https://conda.anaconda.org/conda-forge opencv

    我直接尝试了conda install opencv,但它对我不起作用,因为我使用的是Python 3.5,它是conda中默认的OpenCV库的更高版本。后来,我试过'anaconda / opencv',但它也不起作用。我终于发现conda-forge / opencv适用于Python 3.5。


    我在repo中有一些步骤可以帮助您正确安装OpenCV。

    如果链接断开,请看这个。

    有关要求和先决条件,请遵循以下说明:

    你需要有WINDOWS操作系统来开始这个项目。

    Windows 7到10

    请仔细按照步骤操作

  • 安装Anaconda2 32/64 python 2

    要么

    安装Anaconda3 32/64 python 3

    它取决于系统信息

    一路上你必须检查所有选项忽略红色文本

    然后等到安装完成......

    完成安装后打开CMD管理员

    确保在CMD管理员中配置anaconda-python

  • 键入:python

    这将出来:

    C: WINDOWS system32> python Python 3.6.3 | Anaconda自定义(64位)| (默认,2017年10月15日,03:27:45)

    有关win32的[MSC v.1900 64 bit(AMD64)]请输入"帮助","版权","信用"或"许可证"以获取更多信息。

  • 接下来是安装包:

    NumPy的

    OpenCV的

    PyMySQL或pymysql

    安装和导入OpenCV

    conda install -c conda-forge opencv =(版本可选)

    (如果有更新,请单击是)

    安装和导入Numpy

    pip安装numpy

    (如果有更新,请单击是)

    安装和导入PyMySQL / pymysql

    pip安装PyMySQL或pymysql

  • 完全安装所有软件包后,必须重新启动它。

    再次转到CMD管理员

    输入"python"

    import cv2(cv2是OpenCV)

    导入Numpy或numpy

    导入pymysql

    进口口

    来自Image的PIL

    如果所有的都没问题..你准备好运行代码!!

    完成所有步骤后,您现在可以在我使用的SPYDER python中测试代码


  • 虽然不是通过Conda,这是特定于Ubuntu,安装OpenCV及其内置的所有contrib模块(如SIFT和SURF)的最简单方法是使用:

    pip install opencv-contrib-python

    它支持Python2.7 +和Python 3.4+

    如果您选择不内置contrib,您可以改为:

    pip install opencv-python

    在运行这些命令之前,您需要在下面安装以下依赖项:

    sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

    这是一个关于在Ubuntu上设置OpenCV的好教程:
    https://medium.com/@debugvn/installing-opencv-3-3-0-on-ubuntu-16-04-lts-7db376f93961


    我只想更新Atlas7的精彩答案。

    如果您使用的是OpenCV 3,请将测试代码更改为以下内容:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    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.avi',fourcc, 20.0, (640,480))
    print out.isOpened()  # True = write out video successfully. False - fail to write out video.

    cap.release()
    out.release()

    以下是使用conda安装适用于Python的包的一般方法:

  • conda search packageName,例如conda search opencv

  • 如果这不返回结果,则conda install packageName将不起作用。

  • 此时,您可以访问https://anaconda.org/并在搜索框中输入packageName。如果这会提取结果(应该是OpenCV的结果),然后单击适用于您的平台的结果之一(例如win-64)。下一页将显示用于安装此程序包的命令(例如conda install -c menpo opencv=2.4.11)。

  • 如果您的软件包没有通过搜索https://anaconda.org返回结果,那么您可以尝试pip install packageName

  • 注意:当我使用第3步为win-64安装OpenCV时,我在尝试import cv2时遇到错误。

    这是错误:

    1
    2
    3
    RuntimeError: module compiled against API version a but this version of numpy is 9
    Traceback (most recent call last):
    File"<stdin>", line 1, in <module>

    ImportError:numpy.core.multiarray无法导入

    我认为错误是由于包版本冲突造成的。不过,这是安装OpenCV和其他Python软件包的有效方法,您可能只需要解决一些软件包版本冲突。


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

    enter image description here


    Windows 7,conda 4.4.10 python 2.7.6
    从非官方Windows二进制文件下载了用于python扩展包的opencv包。 (挑选python 2.4 AMD 64)
    cd下载
    pip install opencv_python ...
    python run_some.py(其中import cv2 ...)似乎工作。
    因人而异


    如果你想安装opencv 3.4.0,不幸的是,这个版本不在conda中。你需要使用pip。

    pip install opencv-python==3.4.0.12


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

    首先在命令提示符中输入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中。现在,您将能够使用OpenCV和Python。


    我在一个anaconda虚拟环境中的MAC机器上。为了我,

    1
    conda install -c conda-forge opencv

    工作得很好。

    它安装了opencv版本3.4.4

    希望能帮助到你。


    使用Wheel文件是一种更简单的方法。如果无法从命令提示符安装Wheel文件,则可以使用 / Scripts文件夹中存在的可执行pip文件。


    以下命令为opencv3添加了一个不同的anaconda通道,你应该可以从中拉出来。

    1
    conda install --channel  https://mirrors.ustc.edu.cn/anaconda/cloud/menpo opencv3

    我尝试在我的Raspberry Pi(Raspibian OS)上使用Minoconda,但是我的平台无法获得Open CV。最后,以下命令有效:

    1
    $ sudo apt-get install ipython python-opencv python-scipy python-numpy python-setuptools python-pip