在 ubuntu 上使用 anaconda 安装 openCV

Posted

技术标签:

【中文标题】在 ubuntu 上使用 anaconda 安装 openCV【英文标题】:Installing openCV with anaconda on ubuntu 【发布时间】:2013-11-19 15:29:29 【问题描述】:

我正在尝试将 openCV 库与 anaconda (Python) 一起使用,我能够导入 cv2 包,但到目前为止还没有任何东西能够访问 .mp4 文件。这是我不知道的 ffmpeg 的问题。因为我正在使用我的手机,所以我现在无法发布代码。但是,如果有人能给我一个 Linux 脚本或教程,可以帮助我在 python 上使用 openCV 来分析具有 h264 编码的 mp4 视频,那就太好了

【问题讨论】:

【参考方案1】:

我相信我正在寻找解决方案的路上,所以我发布这个来帮助其他人。

下载conda-recipes。坐在那个目录中,运行conda build x264,然后运行conda build ffmpeg

因为我的系统是 32 位的,所以我必须在 conda-recipes/x264/build.shconda-recipes/ffmpeg/build.sh 中各更改一行,然后才能成功运行 conda build。我变了

export CFLAGS="-Wall -g -m64 -pipe -O2 -march=x86-64 -fPIC"

export CFLAGS="-Wall -g -m32 -pipe -O2 -march=x86-64 -fPIC"

我不太明白我在做什么,但我猜这会有所帮助,现在两个构建都运行没有错误。

但是,opencv 似乎没有使用 FFmpeg;我仍然无法像在 conda 之外那样打开视频文件。如果我得到这个工作,我会更新。

【讨论】:

你有过进一步的合作吗?我可以使用 conda-recipes 构建 ffmpeg,但我不认为 anaconda 的 cv2 正在使用构建的 ffmpeg。请告诉我,感谢您的帮助。 不,这是我在放弃之前所获得的。我对 OpenCV 作为一种将视频数据读入 Python 的方法很感兴趣,为此我制作了 a video reader,它只是从 Python 调用 FFmpeg 并将输出通过管道传输到文件。在我解决这个 OpenCV 问题之前,这是一个临时解决方案。我仍然对你取得的任何进展非常感兴趣。【参考方案2】:

conda 中默认的 OpenCV 包没有启用 ffmpeg。为了解决这个问题,我为 Linux-64 编译了 OpenCV,并在 CMake 中激活了 ffmpeg。我将包上传到我的binstar频道,你可以使用以下命令安装它:

conda install -c https://conda.binstar.org/jaimeivancervantes opencv

【讨论】:

在 Ubuntu 16.04 上尝试过这种方法,但在执行“import cv2”时出错:ImportError: libtiff.so.3: cannot open shared object file: No such file or directory :(【参考方案3】:

我想我刚刚使用menpo-opencv3https://github.com/menpo/conda-opencv3 在 LinuxMint17(基本上是 Ubuntu 14)上为 python 3.5 构建了 opencv3.1.0。这个menpo 包也带有opencv-contrib 模块。太棒了……

首先,确保source deactivate 因为构建 conda 包需要在主 conda env 中完成。

conda install conda-build
git clone https://github.com/menpo/conda-opencv3
cd conda-opencv3
conda config --add channels menpo
conda build conda/
conda install /PATH/TO/OPENCV3/PACKAGE.tar.gz

正如说明所说,在默认设置中,FFMPEG 是禁用的。因此,我必须编辑位于conda-opencv3/conda 中的build.sh 文件以使-DWITH_FFMPEG=0 变为-DWITH_FFMPEG=1,然后再执行conda build conda/

如果conda build conda/成功,最后你会看到这样的东西。

如果您想稍后将此包上传到 anaconda.org,请输入:

$ anaconda 上传 /home/用户名/anaconda3/conda-bld/linux-64/opencv3-3.1.0-py35_0.tar.bz2

这是我们刚刚构建的 conda 包的路径(我认为)。

所以,现在我们可以激活我们要安装这个包的 conda env(例如 cv2-env)

source activate cv2-env

然后

conda install /home/username/anaconda3/conda-bld/linux-64/opencv3-3.1.0-py35_0.tar.bz2

安装此软件包后,我可以使用cv2.VideoCapture 加载我在 Windows 7 中录制的一些 avi 文件。

(menpo 甚至还有 opencv v2.4 https://github.com/menpo/conda-opencv,但我没有尝试过。请注意,2 和 3 不能共存。)

【讨论】:

得到一个错误:致命错误 hdf5.h:No such file or directory (ubuntu 16.04 64bit)【参考方案4】:
+ curl -L https://raw.githubusercontent.com/Itseez/opencv_3rdparty/81a676001ca8075ada498583e4166079e5744668/ippicv/ippicv_linux_20151201.tgz -o /home/vasu/anaconda2/conda-bld/work/opencv-3.1.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/ippicv_linux_20151201.tgz
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current  Dload  Upload   Total   Spent    Left  Speed
0     0    0     0    0     0      0      0 --:--:--  0:00:05 --:--:--  0curl: (77) error setting certificate verify locations:
 CAfile: /etc/pki/tls/certs/ca-bundle.crt
 CApath: none
 Command failed: /bin/bash -x -e /home/vasu/anaconda2/conda-bld/work/opencv-3.1.0/conda_build.sh

【讨论】:

以上是关于在 ubuntu 上使用 anaconda 安装 openCV的主要内容,如果未能解决你的问题,请参考以下文章

如何在Ubuntu 16.04上安装Anaconda Python Distribution

在Ubuntu16.04上安装Anaconda

Ubuntu上卸载Anaconda

Ubuntu安装Anaconda

通过命令行在 Ubuntu(或 Linux)上安装 Anaconda

Ubuntu22.04 安装Annaconda步骤基础命令使用pycharm使用anaconda