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

ubuntu18.04 安装OpenCV3.4.1踩坑过程

2019-07-25 16:10 2719 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/weixin_38504276/article/details/97270426

OpenCV 3.4.1安装

安装环境:ubuntu18.04
用以下命令查看opencv的版本

pkg-config --modversion opencv

第一步 安装依赖

$ sudo apt-get install build-essential  //[compiler]
$ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev //[required]
$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev  //[optional]

安装错误提示:

errorE: unable to locate libjasper-dev

解决办法:

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

此步骤通过。
第二步 下载安装包
下载地址:https://opencv.org/releases/ 下载

opencv-3.4.1.zip
,进行解压,并把解压后的文件放到工作空间中。
(注:之前直接
git clone
的方法下载下来的是最新的4.1.1版本,难怪自己感觉很奇怪,opencv4和opencv3还是有很多区别的,暂时先不去搞opencv4啦!)

第三步 编译及安装

cd ~/<my_working_directory>/opencv-3.4.1
mkdir build
cd build
cmake ..     //没加参数,貌似之前安装加参数会一堆报错
make   //别加参数,加了会出错

安装错误提示:

In file included from /home/pxx/OpenCV/opencv/modules/core/test/test_precomp.hpp:12:0,
from /home/pxx/OpenCV/opencv/build/modules/core/opencv_test_core_pch_dephelp.cxx:1:
/home/pxx/OpenCV/opencv/modules/core/include/opencv2/core/private.hpp:66:12: fatal error: Eigen/Core: No such file or directory
#  include <Eigen/Core>
^~~~~~~~~~~~
compilation terminated.
modules/core/CMakeFiles/opencv_test_core_pch_dephelp.dir/build.make:62: recipe for target 'modules/core/CMakeFiles/opencv_test_core_pch_dephelp.dir/opencv_test_core_pch_dephelp.cxx.o' failed
make[2]: *** [modules/core/CMakeFiles/opencv_test_core_pch_dephelp.dir/opencv_test_core_pch_dephelp.cxx.o] Error 1
CMakeFiles/Makefile2:1229: recipe for target 'modules/core/CMakeFiles/opencv_test_core_pch_dephelp.dir/all' failed
make[1]: *** [modules/core/CMakeFiles/opencv_test_core_pch_dephelp.dir/all] Error 2
Makefile:162: recipe for target 'all' failed
make: *** [all] Error 2

解决方法:
报错说找不到这个头文件,Eigen只有头文件,没有库文件,我们使用

sudo apt-get install libeigen3-dev

安装Eigen,在使用的时候,编译器会直接去

/usr/local/include
或者
/usr/include
目录找头文件,但是找到的是eigen3,并没有Eigen和unsupported。所以我们可以建立一个软连接到这两个文件夹。

#要先确定你的Eigen安装在/usr/local/include还是/usr/include
cd /usr/local/include
sudo ln -sf eigen3/Eigen Eigen
sudo ln -sf eigen3/unsupported unsupported

此步通过。

再执行

sudo make install

第四步 配置OpenCV

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

打开可能是一个空白文件,写入

/usr/local/lib

使得上面的配置生效:

sudo ldconfig

配置bash环境

sudo gedit /etc/bash.bashrc

写入

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

再执行使得上面配置生效

source /etc/bash.bashrc
sudo updatedb

记录个题外话,在尝试安装opencv3.3.1时,在make时出现

undefined reference to `cblas_xxx'

一直没找到解决办法,如果哪位大佬遇见了同样的问题并且解决了,求告知啊呀呀呀!

再记录一下自己现在是装了opencv4和opencv3,为了适应大佬们的算法,需要有不同的版本,在安装和使用时需要注意的是:
在安装

cmake
步骤时,需要额外设置安装后的路径,因为第一个版本默认安装在
usr/local
下的,第二个版本就不能重复了呀!在cmake时执行

cmake cmake -D CMAKE_BUILD_TYPE=RELEASE -D WITH_TBB=ON  -D WITH_V4L=ON -D CMAKE_INSTALL_PREFIX=/usr/local/opencv345 ..

第二个版本的安装路径我设为

/usr/local/opencv345
,另外,在
.bashrc
中添加

export PKG_CONFIG_PATH=/usr/local/opencv345/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/opencv345/lib

source ~/.bashrc
一下,这步是版本切换,从第一个版本切换为第二个版本啦!

与opencv的斗争一直在继续。。。

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