在 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 后如何解决调试/发布冲突的主要内容,如果未能解决你的问题,请参考以下文章