您的位置:首页 > 运维架构

ubuntu16.04下opencv3.2和opencv_contrib编译安装

2018-01-25 19:58 337 查看
1.需要的包:

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

2.下载安装包opencv-3.0.0.zip, opencv_contrib-3.2.0.zip

上opencv官网下载http://opencv.org/。

解压安装包到你想要的地方,本文以存放主文件加下。

例如 /home/imagealg/software/opencv/

3. 利用终端进入opencv3文件夹,代码如下:

cd ~/opencv-3.0.0

4. 新建build文件夹存放opencv的编译文件,进入build文件夹代码如下

mkdir build

cd build

5. 配置opencv文件,代码如下:

不安装opencv_contrib-3.2.0

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

安装opencv_contrib-3.2.0

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/imagealg/software/opencv/opencv_contrib-3.2.0/modules/ ..

或者使用cmake-gui用图形界面编译。

其中/usr/local 是指将要install的路径,一般默认为/usr/local

其中OPENCV_EXTRA_MODULES_PATH=/home/user/opencv_contrib-3.2.0/modules/ .. 是指opencv_contrib-3.2.0中modules所在的路径,后面的两点不可省略

cmake过程中可能遇到的问题:

如果网络不好,出现ippicv_linux_20151201.tgz无法在终端下载的情况,则可以先单独下载ippicv_linux_20151201.tgz之后,把其移动到终端所提示的路径(终端会提示该路径找不到文件),如路径/opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/

移动的时候,可以另外打开一个终端操作:

sudo mv ippicv_linux_20151201.tgz /opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e

如果同样有其他类似的文件无法下载,方法同上。

for file: [/DATA/software/opencv/opencv-3.2.0/opencv_contrib-3.2.0/modules/dnn/.download/bd5e3eed635a8d32e2b99658633815ef/v3.1.0/protobuf-cpp-3.1.0.tar.gz]

6. 进行编译,代码如下:

sudo make -j4

7. 安装opencv库到系统,代码如下:

sudo make install

这样OpenCV就可以使用了。

8 配置opencv.conf file ,加入环境变量

sudo gedit /etc/ld.so.conf.d/opencv.conf

在opencv.conf里面加入命令

/usr/local/lib

更新库目录

sudo ldconfig

打开文件bash.bashrc

sudo gedit /etc/bash.bashrc

加入下面两行

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

export PKG_CONFIG_PATH

9 最后 sudo ldconfig -v 如果有共享库输出的话,就证明成功了。

10 程序测试 

编译不通过请注销或者重启电脑试试

测试代码:opencvtest.cpp

#include <opencv2/opencv.hpp>

using namespace cv;

using namespace std;

int main()

{

Mat img = imread("dazu.jpg");

if(img.empty())

{

cout<<"error";

return -1;

}

imshow("mypic",img);

waitKey();

return 0;

}

 

注意:linux下面的目录形式为/.../....

所以“#include <opencv2\core\core.hpp>” 会找不到头文件

编译方式:

1 命令行

g++  opencvtest.cpp -o opencvtest  `pkg-config  --cflags --libs opencv` 

2 借助cmake,写CMakeLists.txt

cmake_minimum_required(VERSION 2.8)

project(opencvtest)

find_package( OpenCV REQUIRED )

add_executable( opencvtest opencvtest.cpp )

target_link_libraries( opencvtest ${OpenCV_LIBS} )

之后 执行

cmake .

make

 运行

./ opencvtest
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: