ubuntu20 安装opencv (3 4 都可采用此方法) c++版和Sophus库

安装opencv

安装Cmake
只要3.5.1以上即可,可以先看一下自己的cmake版本,一般不需要这一步来安装

sudo apt-get update   
sudo apt-get upgrade
sudo apt-get install build-essential cmake 

安装依赖项

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libatlas-base-dev gfortran libgtk2.0-dev libjpeg-dev libpng-dev

下载opencv包
访问链接,下载

https://opencv.org/releases/page/2/

点击“来源“下载,根据自己的需求下载对应版本
谨记后面代码中对应版本要跟着改,这里是以4.4.0为例,实测3.4.12也可以,把对应版本号改了就行,其他都一样
在这里插入图片描述
解压后进入此文件夹,在此文件夹打开终端
依次执行下列命令进行编译

mkdir build   
cd build
sudo mkdir /usr/local/opencv4.4.0     

预编译
特别提醒 如果你是看视觉slam那本书来安装这个的话,建议在一般安装情况上多安装viz模块,但我只在opencv3上试过,opencv4未做尝试,建议采用opencv3, 预编译采用方法(1)
当然如果你是只是普通安装opencv不用viz模块,直接采用方法(2),即使差其他模块可以后面再重新编译,只是又要花些时间

方法(1)
先安装viz需要的依赖

sudo apt-get install libvtk6-dev

再预编译

cmake -DWITH_VTK=ON -D CMAKE_BUILD_TYPE=RELEASE -D OPENCV_GENERATE_PKGCONFIG=YES -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3.4.12 ..     

方法(2)
直接预编译

cmake -D CMAKE_BUILD_TYPE=RELEASE -D OPENCV_GENERATE_PKGCONFIG=YES -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4.4.0 ..  

编译

sudo make -j4     
sudo make install

配置环境变量

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

在弹出的文件里添加,之后保存退出

/usr/local/opencv4.4.0/lib 

终端输入

sudo ldconfig  
sudo gedit /etc/bash.bashrc 

在弹出的文件里添加,之后保存退出

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv4.4.0/lib/pkgconfig     
export PKG_CONFIG_PATH 

在终端输入

source /etc/bash.bashrc   
sudo apt-get install mlocate
sudo updatedb     

可以用如下指令查看安装的opencv版本

pkg-config --modversion opencv 

测试安装是否完成(自己找一张图片,放在对应路径下)
test.cpp

#include <iostream>
#include "opencv2/core/core.hpp"
#include "opencv2/opencv.hpp"
#include "opencv2/highgui/highgui.hpp"
using namespace std; 
int main() 
{
    
         
        cv::Mat img = cv::imread("../test1.png");
        //namedWindow("DisplayImage");  
        cv::imshow("test", img);
        cv::waitKey();
        return 0; 
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.5) 
project(test_install)
find_package(OpenCV REQUIRED) #加这一句 
include_directories(${
    
    OpenCV_INCLUDE_DIRS}) #加这一句 
set(CMAKE_CXX_STANDARD 11)
add_executable(test_install test.cpp) 
target_link_libraries(test_install ${
    
    OpenCV_LIBS}) #加这一句 ```

编译输出成功后会显示一张图片,表明opencv安装成功

安装Sophus库

git clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff
mkdir build & cd build
cmake ..
make

如果你的ubuntu版本比较新,会出现这样的错误

/Sophus/sophus/so2.cpp:32:26: error: lvalue required as left operand of assignment
    unit_complex_.real() = 1.;

/Sophus/sophus/so2.cpp:33:26: error: lvalue required as left operand of assignment
    unit_complex_.imag() = 0.;
 
解决办法:

找到/Sophus/sophus目录下so2.cpp文件,如下代码:

    SO2::SO2()    

    {
    
         

      unit_complex_.real() = 1.;     

      unit_complex_.imag() = 0.;
    }

将其修改为:


    SO2::SO2()    

    {
    
         

      unit_complex_.real(1.);     

      unit_complex_.imag(0.);
    }

再make一次就好了

猜你喜欢

转载自blog.csdn.net/qin_liang/article/details/126831626
今日推荐