我正在尝试通过 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 版的文档?
conda install opencv
conda install opencv
命令。安装 3.4.1 opencv 和各种依赖包。为我工作,也不需要任何自定义安装规范。
您可以使用 binstar 安装它:
conda install -c menpo opencv
conda install opencv
目前适用于 UNIX/python2。在咨询其他解决方案之前,这值得首先尝试。
Error: Unsatisfiable package specifications.
conda search opencv
是否会为您返回结果?它不适合我。
这对我有用(在 Ubuntu 和 conda 3.18.3 上):
conda install --channel https://conda.anaconda.org/menpo opencv3
上面的命令是我运行以下命令时向我显示的:
anaconda show menpo/opencv3
这是输出:
To install this package with conda run:
conda install --channel https://conda.anaconda.org/menpo opencv3
我在python中测试了以下没有错误:
>>> import cv2
>>>
opencv3
但导入 cv2
?为什么版本号不同?
我总结了我现在完全可用的解决方案,OpenCV-Python - How to install OpenCV-Python package to 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,并且此解决方案有效,请在下方添加评论。谢谢! (更新:从评论“Working on Windows 10”中注意到)
注意 3:根据您使用的是 Python 2.x 还是 3.x,只需在代码片段中相应地调整 print 语句。即在 Python 3.x 中它是 print("hello"),而在 Python 2.x 中它是 print"hello"。
TL;博士
要在 Anaconda(和 Spyder IDE)中完全使用 OpenCV,我们需要:
从 OpenCV 官方站点下载 OpenCV 包 将 cv2.pyd 复制并粘贴到 Anaconda 站点包目录。设置用户环境变量,以便 Anaconda 知道在哪里可以找到 FFMPEG 实用程序。进行一些测试以确认 OpenCV 和 FFMPEG 现在可以正常工作。
(请继续阅读详细说明...)
先决条件
安装 Anaconda
Anaconda 本质上是一个包装精美的 Python IDE,它附带了大量有用的包,例如 NumPy、Pandas、IPython Notebook 等。它似乎在科学界的任何地方都受到推荐。查看 Anaconda 以安装它。
将 OpenCV-Python 安装到 Anaconda
注意:我最初尝试按照建议安装 binstar.org OpenCV 包。然而,该方法不包括 FFMPEG 编解码器 - 即您可能能够使用 OpenCV,但您将无法处理视频。
以下对我有用的说明受到此 OpenCV YouTube video 的启发。到目前为止,我已经让它在我的台式机和笔记本电脑上运行,包括 64 位机器和 Windows 8.1。
下载 OpenCV 包
首先,前往 official OpenCV site 下载完整的 OpenCV 包。选择您喜欢的版本(2.x 或 3.x)。我在 Python 2.x 和 OpenCV 3.x 上 - 主要是因为 OpenCV-Python Tutorials 是这样设置/基于的。
就我而言,我已将包(本质上是一个文件夹)直接提取到我的 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
即可。
# 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 上的“此 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` |
将 %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
版本,那么我们都很好!这是一个快照:
https://i.stack.imgur.com/eHfgo.png
测试 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 站点包目录。设置用户环境变量,以便 Anaconda 知道在哪里可以找到 FFMPEG 实用程序。进行一些测试以确认 OpenCV 和 FFMPEG 现在可以正常工作。
祝你好运!
cv2.pyd
添加到环境的 site-packages
文件夹(例如 C:\Users\cod3monk3y\Anaconda\envs\foo\Lib\site-packages\cv2.pyd
)。另外值得注意的是,.pyd 文件是 just a Windows DLL,具有与 Python 完美配合的特定界面。
您可以通过在 Anaconda 命令提示符下运行以下命令来安装 OpenCV:
conda config --add channels conda-forge
conda install libopencv opencv py-opencv
资源:
https://github.com/conda-forge/opencv-feedstock
conda create --name abc python=2.7
)
您链接的页面似乎不再包含 opencv
。 (有趣的是,我确实记得它也包含在前一点。)
无论如何,将 OpenCV 安装到 Anaconda 中,虽然无法通过 conda 安装,但非常简单。您只需要下载一个文件。
从 https://opencv.org/releases/ 下载 OpenCV 并解压 从解压文件夹中,从解压目录复制文件:opencv/build/python/2.7/(x86 或 x64,取决于您的 Anaconda 版本)/cv2 .pyd 到您的 Anaconda 站点包目录,例如 C:\Anaconda\Lib\site-packages 要让 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 版本。
2019年5月,MacOS的答案如下:
conda update freetype
conda install opencv -c conda-forge
这会将 libfreetype.6.dylib
更新为 24.0.0 兼容性并安装 OpenCV 4.1.0。
sudo
。我会避免将 conda
作为 sudo
运行,除非您为多个用户管理系统范围的安装,我也这样做。在这种情况下,我通常会小心地激活 conda 环境,然后从该环境的 /bin
文件夹中激活 sudo ./conda ...
作为额外的预防措施,因为即使使用 -E
标志,sudo
也会更改您的 PATH
。
libopencv
的早期版本。删除它后,运行 conda install opencv
安装了最新版本。
以下从 conda-forge
安装 opencv
(注意:在 Windows 上尝试过)
conda config --add channels conda-forge
conda install opencv
menpo
,并根据 conda-forge
说明更新了安装 opencv
的语法。答案本身并没有根本改变,因为 menpo
只是用于安装“较新”的 opencv3,而我们已经在 opencv4 上。
要在 Anaconda 中安装 OpenCV,请启动 Anaconda 命令提示符并使用以下命令安装 OpenCV
conda install -c https://conda.anaconda.org/menpo opencv3
测试它是否可以在您的 Anaconda Spyder 或 IPython 控制台中使用
import cv2
您还可以使用以下命令检查已安装的版本:
cv2.__version__
要在 Windows-64 和 Python 3.5 上使用 conda 安装 OpenCv,唯一对我有用的是:
conda install -c conda-forge opencv=3.1.0
我认为应该跨平台和跨各种版本的 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
我遇到了完全相同的问题,无法让 conda 安装 OpenCV。但是,我设法使用您在此站点上找到的 OpenCV 安装程序安装它:
http://www.lfd.uci.edu/~gohlke/pythonlibs/
他的文件是可以使用 pip 安装的“Wheel”whl 文件,例如
pip install SomePackage-1.0-py2.py3-none-any.whl
在命令窗口中。在为我执行此命令后,它直接与 Spyder 一起工作。我对其他包也有同样的经历,上面的 UC Irvine 站点是一个金矿。
它适用于 anaconda3 windows 10 我已经在 2019 年 12 月 5 日下载了它。
首先,使用这个命令:
点安装 opencv-contrib-python
之后,windows 将请求许可并重试:
pip install opencv-contrib-python --user
看看这个它的工作原理!
https://i.stack.imgur.com/a9Sjs.png
我在命令提示符下输入了以下命令:
conda install -c menpo opencv=2.4.11
这对我有用!!!
menpo
频道不再积极维护。请考虑更新。
在 Linux 上,如 here 所述,目前获取 opencv 的最佳方法是从 conda-forge 的 loopbio:
conda install -c loopbio -c conda-forge -c pkgw-forge ffmpeg-feature ffmpeg gtk2 opencv
如果您有“现代 CPU”,则还存在一个编译版本“启用所有现代 CPU 指令集扩展 [...] 并针对 libjpeg-turbo”:
conda install -c loopbio -c conda-forge -c pkgw-forge ffmpeg-feature ffmpeg gtk2 opencv-turbo`
其他答案中提到的两个解决方案不能无条件地工作:
你通过conda install opencv或者pip 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,导致缺少依赖项并在尝试导入 cv2 时出现以下错误:ImportError:libpng12.so.0:无法打开共享对象文件:没有这样的文件或目录,如此处所述
他们只为 Python 3.5 构建了 OpenCV 3.2,而不是 Python 3.6
Ubuntu 16.10 已弃用 libpng12,导致缺少依赖项,并在尝试导入 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 相结合。更多详细信息 here。有一个 PR 正在解决这个问题。”
我刚刚在 Windows 10 中安装了 conda 4.7.11。OpenCV 可以很容易地安装在 Anaconda Navigator 中。启动 Navigator 后,单击左侧面板上的 Environments。在顶部下拉列表中,选择未安装。然后搜索py-opencv,勾选左侧复选框进行安装。它将安装依赖包libopencv。我在 Spyder 中使用 import cv2
来访问它。
https://i.stack.imgur.com/imVLH.png
就我而言,我有 python 3.9 我在我的 conda env 中做了这个并且它有效:
pip install opencv-python==3.4.15.55
pip install opencv-contrib-python==3.4.15.55
和其他人一样,我在 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
像魅力一样工作。我第一次让 OpenCV 在 3.x 上工作!
menpo
频道不再积极维护。
仅限 Windows 的解决方案。适用于 Python 3.x 的 OpenCV 3.x pip 安装
Download .whl 文件(cpMN,您有 Python 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
您的 conda list
中有一个包:opencv-python 3.2.0+contrib <pip>
现在你可以测试它(没有错误):
>>> import cv2
>>>
我获取信息的原始源页面 is here。
如果 conda install opencv
或 conda 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 中的安装说明进行操作,(也许您可以直接跳到最后一部分,'Building OpenCV from Source Using CMake...),更改 { 3}命令如下:
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。
然后:
import cv2
print cv2.__version__
它将打印出 2.4.10
。
我的环境是 GCC 4.4.6、Python 2.7 (anaconda) 和 opencv-2.4.10。
要使用 conda 安装 OpenCV 包,请运行:
conda install -c menpo opencv3=3.1.0
https://anaconda.org/menpo/opencv3
menpo
频道不再积极维护。
一个简单直接的解决方案是在安装 opencv3 之前先安装 python3.5
conda install python=3.5
其次是
conda install --channel https://conda.anaconda.org/menpo opencv3
opencv3
它必须是 opencv=3.1.0
menpo
频道不再积极维护。
虽然不是通过 Conda,而且这是特定于 Ubuntu,但安装 OpenCV 及其所有内置的 contrib 模块(如 SIFT 和 SURF)的最简单方法是使用:
pip install opencv-contrib-python
它支持 Python2.7+ 和 Python 3.4+
如果您选择不内置贡献,您可以改为:
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
在 Anaconda windows 中安装当前版本的 OpenCV 3.3 的正确命令:
conda install -c conda-forge opencv
或者
conda install -c conda-forge/label/broken opencv
对于 3.2 使用这个:
conda install -c menpo opencv3
broken
标记! 这会打开求解器以使用已标记为 broken
的每个包。 Conda 包维护者使用该标签来防止在其构建中识别出错误的包被安装。
我认为没有人提到的一件事是,如果您使用的是 Windows N 或 KN 版本,请安装用于 OpenCV 的 Media Feature Pack 。还要确保您已安装 Visual C++ Distributable 。然后你可以使用命令
conda install -c menpo opencv
conda-forge
对我不起作用。但感谢您提供详细信息。
以下命令也适用于我。我在 Anaconda 中使用嵌入式 IPython Notebook。
conda install -c https://conda.binstar.org/menpo opencv
menpo
频道不再积极维护。
我刚刚在两台 Win32 Python 3.5 计算机上进行了尝试。起初,我能够conda install opencv
,但它不起作用,menpp 的版本也没有,但这样做:
conda install -c https://conda.binstar.org/conda-forge opencv
binstar
多年未见!这些天只有 -c conda-forge
有效。
我在 repo 中的步骤将帮助您正确安装 OpenCV。
如果链接损坏,请参阅此。
有关要求和先决条件,请遵循以下说明:
你需要有 WINDOWS 操作系统才能开始这个项目。
窗户 7 到 10
仔细按照步骤
安装 Anaconda2 32/64 python 2 或安装 Anaconda3 32/64 python 3 它取决于系统信息一路上你必须检查所有选项忽略红色文本然后等到安装完成......完成安装后打开 CMD admin 确保在 CMD admin 中配置 anaconda-python 类型:python 这将出现:C:\WINDOWS\system32>python Python 3.6.3 |Anaconda custom (64-bit)| (默认,2017 年 10 月 15 日,03:27:45)win32 上的 [MSC v.1900 64 位 (AMD64)] 键入“帮助”、“版权”、“信用”或“许可证”以获取更多信息。接下来是安装包: Numpy OpenCV PyMySQL 或 pymysql 安装和导入 OpenCV conda install -c conda-forge opencv =(版本可选)(如果有更新,请单击是)安装和导入 Numpy pip install numpy(如果有更新,请单击是)安装并且 Import PyMySQL/pymysql pip install PyMySQL 或 pymysql 当所有的包都安装完成后,那么你必须重新启动它。再次转到 CMD 管理员,输入“python”import cv2(cv2 是 OpenCV)import Numpy 或 numpy import pymysql import os from PIL from Image 如果一切正常的话..你准备好运行代码了!完成所有步骤后,您现在可以在我使用的 SPYDER python 中测试代码
如果你想安装 opencv 3.4.0,很遗憾,conda 里面没有这个版本。您需要改用 pip 。
pip install opencv-python==3.4.0.12
我尝试了以下命令,它工作正常
conda install -c conda-forge opencv
一旦你点击命令,它会询问是或否
https://i.stack.imgur.com/t6gCV.png
如果您选择是,它将继续并安装所有必需的软件包
不定期副业成功案例分享
import cv2.cv
(我是否遗漏了一些明显的东西?)conda install opencv
没有。