ubuntu 18.04安装opencv与opencv_contrib

0 写在前面

查询你自己安装的opencv库,如果是系统自带的或者是ros自带的,千万不要删了,要不然ros会崩

0.1 查询自己的opencv版本

pkg-config --modversion opencv

0.2 判断ros自带的opencv版本:发现系统内的opencv就是ros自带的,不能删,既然已经有了opencv就别编译安装了被,要不然冲突了就不好了

dpkg -l | grep libopencv

 

1、opencv与opencv_contrib安装

1、opencv下载与opencv_contrib下载与解压

opencv下载github链接Tags · opencv/opencv · GitHub

opencv_contrib下载github链接Tags · opencv/opencv_contrib · GitHub

下载时要注意版本两者版本是一致的,我下载的是opencv-3.4.19.zip与opencv_contrib-3.4.19.zip

并将其放到了Downloads目录下,因为是.zip文件,所以用unzip进行解压

cd ~/Downloads/
unzip opencv-3.4.19.zip
unzip opencv_contrib-3.4.19.zip

2、环境配置

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

出错:

解决方法:运行以下语句(参考博客:解决 “E: Unable to locate package libjasper-dev” (亲测有效)_e: 无法定位软件包 libjasper-dev-CSDN博客

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

  3、安装

3.1 在opencv文件夹下建立build文件夹并进入

cd ~/Downloads/opencv-3.4.19/
mkdir build
cd build

   3.2 使用cmake构建opencv,这里我有话说

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/dj2c/Downloads/opencv_contrib-3.4.19/modules ..

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/dj2c/Downloads/opencv_contrib-3.4.19/modules ..

其中

  • -DCMAKE_BUILD_TYPE=Release:指定构建类型为 Release,即编译优化级别较高的版本。
  • -DCMAKE_INSTALL_PREFIX=/usr/local:指定安装路径为 /usr/local,这是一个常见的安装路径。
  • -D OPENCV_EXTRA_MODULES_PATH=/home/dj2c/Downloads/opencv_contrib-3.4.19/modules:指定额外的模块路径,这些模块通常不包含在标准的 OpenCV 发行版中。在这个例子中,它指定了一个名为 opencv_contrib 的目录,其中包含了额外的模块。我在opencv_contrib-3.4.19文件夹下的modules的路径为/home/dj2c/Downloads/opencv_contrib-3.4.19/modules你要换成自己的
  • .. 表示 CMake 的构建目录,即 CMakeLists.txt 所在的目录的上级目录。这个命令告诉 CMake 在上级目录中查找 CMakeLists.txt 文件,并使用指定的参数进行构建。

 运行出错1:原因是有个文件没有下载下来

分析:它说IPPICV下载失败让我们查看文件

/home/dj2c/Downloads/opencv-3.4.19/build/CMakeDownloadLog.txt获取详细信息文件里可以看见里面有说这个文件没有下载下来,并且给了一个网址,直接从网址下载,你发现你可能连网页都很难打开,幸好有万能的网友分享了这个文件:这是她的博客http://t.csdnimg.cn/OTxR5

我这里也给出

通过百度网盘分享的文件:ippicv_2…

链接:https://pan.baidu.com/s/1Yl2KzCt8Hh0XYnUyjaA24w?pwd=gq54 

提取码:gq54

我将文件的压缩包放到了路径file:///home/dj2c/Downloads下,找到配置文件/home/dj2c/Downloads/opencv-3.4.19/3rdparty/ippicv/ippicv.cmake并打开,将下载修改路径为file://+j绝对路径:file:///home/dj2c/Downloads/,如下图所示:

 

诶呦,突然发现自己没开科学上网,我说怎么那么多毛病,搞科研不科学科研,完全就是给自己找罪受。

其他文件错误见他人博客: 

http://t.csdnimg.cn/HPyYR

3.3 make

sudo make -j8

 现在是学到了,make的时候能-j8就-j8,多线程节约时间,执行nproc查询自己的核心处理器数量

3.4 安装

sudo make install

3.5 添加路径

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

这里我看很多高手都用vim进行编辑,但是我下载了都不会用,有空学习学习,小白才用gedit

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

在文件中添加如下内容,是个空白文件,干就完了:

/usr/local/lib

再在终端输入使其保存并生效:

sudo ldconfig

再在终端输入:

sudo gedit /etc/bash.bashrc

 打开文件后在文件末尾添加:

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

保存退出,终端输入:

source /etc/bash.bashrc

 3.6 验证测试

回到~/Downloads/opencv-3.4.19路径下:

cd ~/Downloads/opencv-3.4.19/samples/cpp/example_cmake/
cmake .
make 
./opencv_example 

 最终显示出一个这样的框就是成功了(我没摄像头所以是黑的) 

(注:参考文献:http://t.csdnimg.cn/Tm5iy

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值