Ubuntu 14.04.3 安装 opencv 3.0.0

来源:互联网 发布:mac os最新版本下载 编辑:程序博客网 时间:2024/06/10 02:41

刚才要做对视频每一帧的提取,按照网上的一种方法安装了Opencv 3.2,然而一切安装完毕后执行以下代码:


import cv2catcher = cv2.VideoCapture('3.avi')

报错,提示:

Unable to stop the stream: Inappropriate ioctl for device


各种调整都没能解决问题,无奈重新安装了3.0.0版本的Opencv,总结步骤如下。


已有环境:CUDA 8.0 cudnn 7.5 Python 2.7 scipy numpy theano 等深度学习套件


参考:http://rodrigoberriel.com/2014/10/installing-opencv-3-0-0-on-ubuntu-14-04/

(一) 安装依赖项

sudo apt-get -y install libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff4-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
(二) 下载Opencv源码

http://opencv.org/releases.html

下载后解压到Home文件夹,在解压出来的文件夹中新建一个名为build的文件夹,并在build内打开终端。


(三)编译,安装

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D WITH_LAPACK=OFF ..make -j $(nproc)sudo make install
在执行 make -j $(nproc) 时,编译到92%报错:

modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/build.make:290: recipe for target 'modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/src/graphcuts.cpp.o' failedmake[2]: *** [modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/src/graphcuts.cpp.o] Error 1
经过谷歌找到了解决方法,原来官方的3.0.0版本发布时尚不支持CUDA 8.0,现在已经修复:
参考https://github.com/opencv/opencv/pull/6510/commits/10896129b39655e19e4e7c529153cb5c2191a1db
即进入到~/opencv-3.0.0/modules/cudalegacy/src文件夹中,打开graphcuts.cpp文件,删除第45行的预处理语句,改为
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)
重新编译即可。
卸载:
make uninstall
cd ..
sudo rm -r build
sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*

0 0