前几天花了一天时间整ubuntu下的opencv安装,可是总是出现各种各样的问题。在网上查资料,可是都是碎片化的资料,加之自己英文不是很好,有时候不是很清楚有些人的解决方法,于是就只能各种尝试。原先想装opencv3.1.0,可是总是装不成功,经常卡在cmake处就中断了。后来想想自己在windows下装的也是opencv2.4.9,就想是不是版本的问题呢?于是换成2.4.9,几乎没出什么问题,就装成功了。幸福之余,我想把自己的安装过程总结下来,希望分享给大家。所以明确一点,我们这里装的版本是 OpenCV2.4.9.
PS: 最好不要把opencv2.4.9解压到共享内存中去,否则可能会出错。我是将其解压到了home文件下.
sudo apt-get -qq remove ffmpeg x264 libx264-dev
步骤二:解压下载好的opencv
unzip opencv-2.4.9.zip
步骤三:安装ffmpeg
安装方法,请参考:《 ubuntu14.04安装ffmpeg》
步骤四:安装OpenCV所需的库(编译器、必须库、可选库)
GCC 4.4.x or later
CMake 2.6 or higher
Git
GTK+2.x or higher, including headers (libgtk2.0-dev)
pkg-config
Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
[optional] libtbb2 libtbb-dev
[optional] libdc1394 2.x
[optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
步骤五:进入源码目录
cd opencv-2.4.9
步骤六:进入源码目录的cmake目录
cd cmake
步骤七:cmake编译生成Makefile
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
cmake会进行很长时间,大概有10几分钟。cmake完后出现如下界面:
步骤八:编译,并安装
sudo make install
注意:安装的所有的lib文件都会被安装到/usr/local目录
例如:后面python必须的opencv库来自于:/usr/local/lib/python2.7/site-packages/cv2.so
至此opencv基本安装成功,接下来我们测试一下:
#include <cv.h>
#include <highgui.h>
using namespace cv;
int main(int argc, char* argv[]) {
Mat image;
image = imread(argv[1], 1);
if (argc != 2 || !image.data) {
printf("No image data\n");
return -1;
}
namedWindow("Display Image", CV_WINDOW_AUTOSIZE);
imshow("Display Image", image);
waitKey(0);
return 0;
}
2.同目录,新建一个文件CMakeLists.txt,写入如下内容
project(test)
find_package(OpenCV REQUIRED)
add_executable(test test)
target_link_libraries(test ${OpenCV_LIBS})
cmake_minimum_required(VERSION 2.8)
3.编译成可执行文件
cmake .
make
4.随便弄个jpg图片做个测试,注意要和上面那个可执行文件放在同一目录下面,我这里名字取的是test.jpg。
5.进入test.cpp目录中,键入
./test test.jpg
如果能看到照片,那就表示成功了。
因为在python中使用opencv会使用到很多科学运算库,为此我安装了anaconda python
地址:https://www.continuum.io/downloads
里面包含了python 2.7 和python 3.5,一般我们选择python 2.7。下载下来,
在其下载目录下,键入:
bash Anaconda2-2.5.0-Linux-x86_64.sh
安装成功。里面包含了我们所有的几乎所有库,包括numpy,matplotlib等
你可以在python终端键入:
import sys;print sys.path
它将输出许多地址,然后将
/usr/local/lib/python2.7/site-packages/cv2.so
移动到以上任意一个目录下,我此刻移到了 ./home/anaconda2/lib 里面.
可直接使用apt安装
sudo apt-get install python-opencv
sudo apt-get install python-numpy
测试:
打开python,import cv2模块成功即可。
import cv2
可以编译过去,说明安装成功.