Ubuntu安装OpenCV及运行光流法工程项目

最近在做计算机视觉项目时需要获取视频的光流图,于是便在github找了一些现成的项目工程,这些项目工程都是使用C++ OpenCV,所以需要在电脑上安装OpenCV,折腾了很久,也踩了很多坑,这里把安装过程及工程运行过程记录下来,方便以后查阅。

Linux gcc环境

这个是最基本的,编译需要有gcc编译环境,没有的输入一行命令即可解决。

sudo apt install build-essential

安装CMake

CMake需要着重说明一下,Ubuntu 16.04自带的CMake版本一般不会超过3.5,而且通过apt-get命令下载的版本也往往不是最新版本,或者达不到项目工程CMake版本的需要,尤其是低版本的CMake在搜索依赖包的时候会出现一些问题,所以最好的办法就是下载源码包进行编译。

在编译CMake前首先编译OpenSSL,下载源码后开始编译

./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared 
make -j4 
make install

然后添加环境变量,在.bashrc中添加

export PATH=$PATH:/usr/local/openssl/bin
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/openssl/lib
export OPENSSL_ROOT_DIR=/usr/local/openssl

在 etc/ld.so.conf 中添加

/usr/local/openssl

安装完openssl后去cmake官网下载最细版本的cmake源码,解压后开始编译。

./bootstrap
make
sudo make install

安装OpenCV

先通过apt下载OpenCV所需要的依赖库,包括pkg-config,ffmpeg等。

sudo apt-get install 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

有可能会遇到libjasper-dev无法正常下载的情况,可是尝试下面的方法。

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

完成后从OpenCV官网下载相应版本的源码包,进入文件夹,创建build文件夹。

cd ~/opencv
mkdir build
cd build

然后执行CMake命令

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/opencv ..

这个最简单的CMake配置命令,还可以在命令中添加许多编译选项,比如

-DWITH_TBB=ON
-DWITH_V4L=ON
-DWITH_CUDA=ON
-DBUILD_EXAMPLES=ON
-DENABLE_PRECOMPILED_HEADERS=ON/OFF
-DWITH_QT=ON
-DWITH_OPENGL=ON
-DOPENCV_GENERATE_PKGCONFIG=ON
-DENABLE_CXX11=ON
....

添加cuda时要注意,Opencv2.4版本只支持cuda9.0,所以当你的cuda版本较高时,需要安装Opencv3.0以上版本才行。

如果需要编译opencv_contrib模块,则需要添加opencv_contrib文件夹下的module目录

-DOPENCV_EXTRA_MODULES_PATH=<path to opencv_contrib/modules/>

生成Makefile文件后,执行make

make -j4
sudo make install

然后在/etc/ld.so.conf中添加lib路径即可

编译光流法项目工程

这里推荐两个github上的光流法工程
https://github.com/agethen/dense-flow
https://github.com/bityangke/denseflow
其中有一个需要安装boost,在cmake执行时可能会遇见find_package(opencv REQUIRED)的问题,即cmake无法找到Opencv的cmake配置文件,这种情况一般是cmake版本低造成的,可以升级cmake,或者修改一下CMakeLists.txt文件

find_package(opencv REQUIRED)

修改为

find_package(OpenCV REQUIRED
              NO_MODULE 
              PATHS /usr/local/opencv #你的Opencv的路径
              NO_DEFAULT_PATH)

或者在cmake编译选项中添加-DCMAKE_INSTALL_PREFIX=<你的Opencv的路径>。 编译完成后即可运行程序

获取视频的光流图
另外如果电脑上安装了Anaconda,记得在编译Opencv时一定要屏蔽Anaconda环境,否则会造成编译环境污染,导致无法编译成功。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值