今天尝试在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
答案 0 :(得分:0)
您可能希望通过conda packages安装OpenCV,它会下载二进制文件并为您执行所有配置。打开命令窗口(cmd.exe)并键入:
values += data[i];
但是,因为你开始我会建议你使用Python 3.如果你不想进行全新安装,你可以使用python 3.4创建一个conda环境,它独立运行并且不会对你的任何安装进行网格化:
conda update conda
conda install --channel https://conda.anaconda.org/menpo opencv
要激活此环境,每次要使用opencv或安装新软件包时都需要运行以下命令
conda create -n OpenCVenv python=3.4
激活环境后,您可以安装opencv3:
activate OpenCVenv
请注意,如果您想安装Spyder等不同的软件包,您可以这样做:
conda install --channel https://conda.anaconda.org/menpo opencv3
那是因为Spyder在Anaconda中得到了支持。例如,您可以安装所有packages included en Anaconda
conda install spyder