linux下的OpenCV安装

  最近在做医疗图像处理的项目,合作公司指定要求使用matlab进行测试,最终成品上用C语言的OpenCV库进行移植。同组的同学做Matlab的测试,所以使用C++版本的OpenCV进行移植就是我的工作了。本来觉得在windows下用VS进行移植测试已经够用,无奈新买的游戏本笔电实在太重了,在学校的时候通过teamviewer连回来还是不够丝滑,所以干脆在VPS上也整一份,在外面的时候直接通过ipad通过ssh连到服务器就能编辑测试,图片的预览可以通过输出到owncloud网盘的目录下,直接通过手机下载查询。

C++接口安装

  标题超链接到官方文档了,官方说明解释的十分详细。

编译环境准备

1
2
3
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

  第一行命令是编译build工具库安装,基本上每个VPS都预装好了,第二行是cmake的编译必须库,第三行可选的库,用于防止有一些东西没装,导致接口出问题,官方文档说是可选的,亲测如果使用bwh的VPS,会出现apt源里没有部分库,删去即可,ali的VPS无此问题。完美党遇到没有的工具仍想装,请手动导入源。

源码下载

  官方文档给出了两种解决途径,在官网下载,建议直接复制链接,然后到terminal中wget,然后unzip即可;另一种为使用git下载github中的副本,具体命令如下:

1
2
3
cd ~
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

编译安装

  在下载的源码文件夹中新建build文件夹,之后依次cmake,build,make,make install即可

1
2
3
4
5
mkdir ~/opencv/build
cd ~/opencv/build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j7
sudo make install

  注意,可能在make的过程中,发生如下报错:

1
g++: internal compiler error: Killed (program cc1plus)

  查询Stack Overflow后,发现是因为内存用完了,改用make,去掉-j7,使用单线程可以解决问题。但是我的bwh的swap实在太小了,才200MB,于是悲催的在编译到98%的时候,仍然报错,分配更多swap空间后,解决问题。