在 Anaconda 下安装 OpenCV 后如何解决调试/发布冲突

Posted

技术标签:

【中文标题】在 Anaconda 下安装 OpenCV 后如何解决调试/发布冲突【英文标题】:How do I resolve debug/release conflict after installing OpenCV under Anaconda 【发布时间】:2016-03-15 22:11:18 【问题描述】:

今天尝试在Python下开始使用OpenCV,虽然我对前者没有经验,对后者的经验也很少。由于我没有经验,所以我遵循了一种安装方法,如下所述。现在我想弄清楚是否需要从源代码安装。

首先使用 Python 2.7 下载和安装 Anaconda。

下载适用于 Windows 的 OpenCV 3.1.0 并将 cv2.pyd 文件移至 C:\Anaconda2\Lib\site-packages。我相信这意味着我安装了一个二进制文件而不是从源代码。此时没有修改任何路径名或环境变量。

使用 Anaconda Launcher 启动 Spyder。 import cv2 在 Spyder 控制台中运行,没有任何抱怨。 print cv2.__version__ 返回了3.1.0,我将其解释为安装成功。

当我试图做某事时,麻烦就开始了。 cv2.imread 正在返回一个 None 值。对此的明显解释是我提供了错误的文件名,但我认为不是这样。我运行os.listdir('.') 然后cv2.imread() 以消除这种可能性。更险恶的解释是我混合了 Debug 和 Release 库(见这个线程OpenCV imread(filename) fails in debug mode when using release libraries)。

我的问题是:如何检查发布/调试冲突是否确实导致了问题?我看到一些建议引用更改 CMake 参数和重建,但由于我只是将二进制文件放入文件夹中,这与我安装 OpenCV 的方式无关。这让我回到了我开始的问题:我是否需要放弃二进制文件并从源代码重新安装?这对我来说是一个令人生畏的前景。我跑了cv2.getBuildInformation(),它在我的控制台上转储了一堆文本,但我不知道它是什么意思。它似乎同时引用了 Release 和 Debug 模式。

编辑:我正在运行 64 位 Windows 7 Pro

【问题讨论】:

【参考方案1】:

您可能希望通过conda packages 安装 OpenCV,它会下载二进制文件并为您完成所有配置。打开命令窗口(cmd.exe)并输入:

conda update conda
conda install --channel https://conda.anaconda.org/menpo opencv

但是,既然您刚开始,我建议您使用 Python 3。如果您不想进行全新安装,您可以使用 python 3.4 创建一个 conda 环境,该环境独立运行并且不会对您的任何安装进行网格划分:

conda create -n OpenCVenv python=3.4

要激活这个环境,每次你想使用 opencv 或安装新包时都需要运行以下命令

activate OpenCVenv

激活环境后就可以安装opencv3了:

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

请注意,如果您想安装不同的软件包,例如 Spyder,您可以这样做:

conda install spyder

这是因为 Anaconda 支持 Spyder。例如你可以安装所有的packages included en Anaconda

conda install anaconda

【讨论】:

以上是关于在 Anaconda 下安装 OpenCV 后如何解决调试/发布冲突的主要内容,如果未能解决你的问题,请参考以下文章

安装anaconda后opencv不能用怎么办

windows下anaconda2.7怎么安装opencv

Anaconda下OpenCV库的安装

利用Anaconda软件安装opencv模块

无法在 anaconda windows 中导入 opencv

anaconda+opencv+tensorflow环境配置