OpenCV build and install on ubuntu
Published in:2024-07-09 |
Words: 727 | Reading time: 4min | reading:

下载所需库

1
2
3
4
5
6
7
8
9
# 下载依赖库
sudo apt install -y build-essential cmake libopencv-dev git-lfs clang-format
sudo apt install g++ vim
sudo apt install make unzip wget
git lfs install
sudo apt-get install build-essential libgtk2.0-dev libgtk-3devlibavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
sudo apt install git
sudo apt install libgtk2.0-dev pkg-config
sudo apt install libcanberra-gtk-module

make gui

1
2
sudo apt install cmake-qt-gui
cmake-gui ..

下载opencv安装包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sudo git clone https://codeload.github.com/opencv/opencv
unzip opencv-4.10.0
mkdir build
cd build
# remove old file
sudo rm -rf ./*
sudo chmod 777 -R ./*
# 打开opencv_contrib-3.4\modules\xfeatures2d \include\opencv2
# 将此处文件复制到opencv的安装位置opencv\build\include\opencv2
# 在此处创建文件夹xfeatures2d,将xfeatures2d.hpp和xfeatures2d里的两个文件都复制过去,避免以后因没有nonfree.hpp文件出现错误。
# mkdir ./opencv/build/include/opencv2/xfeatures2d
# cp ./opencv-contrib-3.4.16/modules/xfeatures2d/include/opencv2 ./build/include/opencv/
# 引用#include<opencv2/xfeatures2d/xfeatures2d.hpp> 如果没有创建文件夹,将xfeatures2d.hpp直接放在opencv2下,引用时直接写为#include<opencv2/xfeatures2.hpp>
# sudo cp -r ./* /usr/local/include/opencv2/
cd ~/Desktop/calib/calib/third_party/opencv/include/opencv2/
sudo cp -r ./xfeatures2d.hpp /usr/local/include/opencv2/

编译

1
2
3
4
cmake ../opencv-4.10.0 -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local # new
make
sudo make install
# cmake ../opencv-version -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local

build success

img

安装

1
2
3
4
5
6
7
8
9
10
#  编译安装
sudo make install
# 编译
make -j

# 检测opencv是否安装 以及查询对应版本号
# 查看版本,有输出4.5.2就成功
pkg-config --modversion opencv4
# 查看库
pkg-config --libs opencv4

成功效果

img

other

  • 1.cmake
1
2
3
4
5
6
7
8
9
wget https://cmake.org/files/v3.22/cmake-3.22.1.tar.gz
sudo apt-get install libssl-dev
tar -xvzf cmake-3.22.1.tar.gz
sudo chmod 777 ./configure
./configure
make
sudo make install
sudo update-alternatives --install /usr/bin/cmake cmake /usr/local/bin/cmake 1 --force
cmake --version
  • 2.Eigen3
1
2
3
4
5
6
7
git clone https://gitlab.com/libeigen/eigen/-/releases/3.4.0
sudo chmod 777 -R ./*
sudo apt-get install libeigen3-dev
mkdir build
cd build
cmake ../
sudo make install
  • 3.Sophus
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sudo git clone https://github.com/strasdat/Sophus.git
# https://gitee.com/SimonLeung/Sophus
unzip Sophus.zip
sudo chmod 777 -R ./*
cd Sophus
git checkout a621ff #切换为非模板类的历史版本
# git config --global --add safe.directory /home/czq/Desktop/calib/lib/Sophus
cd Sophus
mkdir build
cd build
vim ../sophus/so2.cpp
# unit_complex_.real() = 1.; -> unit_complex_.real(1.);
# unit_complex_.imag() = 0.; -> unit_complex_.imag(0.);
cmake ..
make
sudo make install
    1. g2o
1
2
3
4
5
6
7
8
9
sudo git clone https://github.com/RainerKuemmerle/g2o/archive/refs/tags/20230223_git.zip
unzip 20230223_git.zip
sudo chmod 777 -R ./*
cd 20230223_git
sudo mkdir build
cd build
cmake ..
make
sudo make install

other

1
2
3
4
5
6
7
// vim ./include/file.cpp
// from:
cv::Ptr<cv::FeatureDetector> pDetector = cv::xfeatures2d::SIFT::create();
cv::Ptr<cv::DescriptorExtractor> pDescriptor = cv::xfeatures2d::SIFT::create();
// to:
cv::Ptr<cv::FeatureDetector> pDetector = cv::SIFT::create();
cv::Ptr<cv::DescriptorExtractor> pDescriptor = cv::SIFT::create();

debug model lib

1
2
3
sudo apt install libgtk2.0-dev  pkg-config
# rebuild opencv
sudo apt-get install libgoogle-glog-dev

build win exe on unbuntu

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# CMake
sudo apt-get install cmake
# google-glog + gflags
sudo apt-get install libgoogle-glog-dev libgflags-dev
# Use ATLAS for BLAS & LAPACK
sudo apt-get install libatlas-base-dev
# Eigen3
sudo apt-get install libeigen3-dev
# SuiteSparse (optional)
sudo apt-get install libsuitesparse-dev

sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen

sudo cp -r /usr/include/eigen3/Eigen /usr/include
sudo cp -r /usr/include/eigen3/signature_of_eigen3_matrix_library /usr/include
sudo cp -r /usr/include/eigen3/unsupported /usr/include

sudo apt install liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev

# ceres
sudo git clone https://github.com/ceres-solver/ceres-solver
# use follow link tag or release package
# https://github.com/ceres-solver/ceres-solver/archive/refs/tags/2.2.0.zip
mkdir build
cd build
cmake ..
make -j8
sudo make install

open gui on ubuntu

1
nautilus /path/to/directory

See

Prev:
使用clion工具编写cpp qt demo程序
Next:
npm安装时出现拉取git仓库错误问题修复措施研究