在Ubuntu上使用Anaconda安装openCV

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

4

我相信我已经在解决问题的道路上取得了很大进展,因此我将此发布以帮助其他人。

下载conda-recipes。进入该目录,运行conda build x264,然后再运行conda build ffmpeg

由于我的系统是32位的,在成功运行conda build之前,我不得不分别更改conda-recipes/x264/build.shconda-recipes/ffmpeg/build.sh中的一行代码。我做出了如下更改:

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

to

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

我并不完全理解我在做什么,但我猜想这会有所帮助,现在两个构建都没有错误了。

然而,OpenCV似乎没有使用FFmpeg;我仍然无法像在conda之外那样打开视频文件。如果我能让它工作,我会更新的。


你有进展吗?我可以使用conda-recipes来构建ffmpeg,但我不认为anaconda的cv2正在使用构建的ffmpeg。请告诉我,感谢帮助。 - Alex I
不,这是我放弃之前所做的。我对OpenCV很感兴趣,因为它可以将视频数据读入Python,为此我制作了一个视频阅读器,它只是从Python中调用FFmpeg并将输出导入文件。这是一个临时解决方案,直到我解决这个OpenCV问题。我仍然非常关注您所取得的任何进展。 - Dan Allan

1
我认为我刚刚成功地在LinuxMint17(基本上是Ubuntu14)上使用menpo-opencv3(位于https://github.com/menpo/conda-opencv3)构建了Python 3.5的OpenCV 3.1.0。这个menpo包还附带了opencv-contrib模块。太棒了...
首先,请确保source deactivate,因为构建conda包需要在主conda环境中完成。
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 build conda/之前,我必须编辑位于conda-opencv3/conda中的build.sh文件,将-DWITH_FFMPEG=0更改为-DWITH_FFMPEG=1
如果conda build conda/成功,您将在末尾看到类似于以下内容:
如果您想稍后将此软件包上传到anaconda.org,请键入: $ anaconda upload /home/username/anaconda3/conda-bld/linux-64/opencv3-3.1.0-py35_0.tar.bz2
这是我们刚刚构建的conda软件包的路径(我认为)。
因此,现在我们可以激活我们想要安装此软件包的conda环境(例如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:没有这个文件或目录(ubuntu 16.04 64位) - Dang Manh Truong

1

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

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

在Ubuntu 16.04上尝试了这种方法,但在执行“import cv2”时出现错误:ImportError: libtiff.so.3:无法打开共享对象文件:没有那个文件或目录 :( - Dang Manh Truong

0
+ 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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接