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的主要内容,如果未能解决你的问题,请参考以下文章