ubuntu18.04 安装opencv4.5.5

Posted 想游泳的鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ubuntu18.04 安装opencv4.5.5相关的知识,希望对你有一定的参考价值。

在编译ros的node的时候,碰到了一个错误,

/home/project/src/tasks.cpp:361: undefined reference to `cv::imread(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'

上网查了一下,说注意上面的那个__cxx11。旧版本编译器编译出来的代码中,不会有这个符号,在C++11中修改了std标准库的实现方式。低版本的opencv所使用的编译器的版本是4.8.0,而我用的gcc的版本都已经是7.5.0.按照他说的解决办法,在编译的时候加上-D_GLIBCXX_USE_CXX11_ABI=0什么的也不管用。后来一想,新的版本的opencv应该支持C++11吧。于是上opencv的官网一查,果然最新的opencv已经支持了,就准备安装一个最新版的,解决这个问题

前期准备工作

安装cmake和make,还有gcc,这三个东西ubuntu18.04默认是不安装的。

sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install cmake
sudo apt-get install make

安装依赖环境

sudo apt-get install build-essential
sudo apt-get install 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 libtiff5-dev libjasper-dev libdc1394-22-dev #处理图像所需的包
#以下是opencv官方linux安装教程中未制定的包,以防后期使用,这里都安装了(反正都不大)
sudo apt-get install libv4l-dev liblapacke-dev #视频相关的包
sudo apt-get install libxvidcore-dev libx264-dev #处理视频所需的包
sudo apt-get install libatlas-base-dev gfortran #优化opencv功能的包
sudo apt-get install ffmpeg #流媒体转换/播放工具包
sudo apt-get install libgtk-3-dev #ubuntu16.04慎装,可能引起gtk2和gtk3的冲突
sudo apt-get install libopenblas-dev #高性能多核矩阵运算库BasicLinearAlgebraSubprograms

Bug:其中,在安装libjasper-dev时报错:无法定位软件包 libjasper-dev

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

下载opencv4.5.5

cd opencv-4.5.5
mkdir build
cd build

使用cmake生成makefile文件

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_GTK=ON -D OPENCV_GENERATE_PKGCONFIG=YES ..

CMAKE_BUILD_TYPE=RELEASE:表示编译发布版本
CMAKE_INSTALL_PREFIX:表示生成动态库的安装路径,可以自定义
WITH_GTK=ON:这个配置是为了防止GTK配置失败:即安装了libgtk2.0-dev依赖,还是报错未安装
OPENCV_GENERATE_PKGCONFIG=YES:表示自动生成OpenCV的pkgconfig文件,否则需要自己手动生成。

编译安装

make -j$(nproc)
sudo make install

注:如果需要重新cmake,请先将build目录下的文件清空,再重新cmake,以免发生错误
安装好的头文件地址:/usr/local/include/opencv4

环境配置

1、sudo vim /etc/ld.so.conf.d/opencv.conf
     # 打开后可能是空文件,在文件内容最后添加
     /usr/local/lib
2、更新系统库
     sudo ldconfig
3、配置bash
     sudo vim /etc/bash.bashrc  
     //在末尾添加
     export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
     export LD_LIBRARY_PATH=/usr/local/opencv/lib
4、更新bash文件
     source ~/.bashrc
     sudo updatedb

测试

pkg-config opencv4 --modversion 

若出现下面情况则安装成功

pkg-config opencv4 --modversion 4.5.4

代码测试

#include <iostream>
#include <opencv2/opencv.hpp>
 
using namespace std;
using namespace cv;

int main()

    Mat srcImage = imread("opencv.jpg");
    imshow("Display Image window",srcImage);
    waitKey(0);
    return 0;

同级目录放一张图片,名为opencv.jpg,编译

g++ `pkg-config opencv4 --cflags` demo.cpp  -o demo `pkg-config opencv4 --libs`

运行以后,如果显示出图片,就说明安装成功
如果需要编写CmakeList.txt

cmake_minimum_required( VERSION 2.8 )
project( task)
find_package( OpenCV REQUIRED )
add_executable( task test.cpp )
target_link_libraries(task  $OpenCV_LIBS )

参考文档

https://blog.csdn.net/Murray__/article/details/121729438
https://www.jianshu.com/p/59608e83becb

以上是关于ubuntu18.04 安装opencv4.5.5的主要内容,如果未能解决你的问题,请参考以下文章

opencv4.5.5怎么查看安装完成

OpenCV学习笔记04:在Visual Studio上使用OpenCV4.5.5

Ubuntu 18.04 系统U盘安装与初步设置

Ubuntu18.04安装教程

Ubuntu18.04安装教程

Ubuntu 18.04上安装 phpMyAdmin