1、编译工具
sudo apt install g++
sudo apt install cmake
sudo apt install make
sudo apt install wget unzip
2、opencv依赖的库
sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
1、opencv源代码:(https://opencv.org/releases/)
Releases · opencv/opencv · GitHubhttps://github.com/opencv/opencv/releases下载指定版本:wget -O opencv.zip https://github.com/opencv/archive/4.5.0.zip
下载最新版本:wget -O opencv.zip https://github.com/opencv/opencv/archive/master.zip
2、opencv-contrib源码:Releases · opencv/opencv_contrib · GitHubRepository for OpenCV's extra modules. Contribute to opencv/opencv_contrib development by creating an account on GitHub.https://github.com/opencv/opencv_contrib/releases
1、解压缩opencv和contrib压缩包
unzip OpenCV4.5.0.zip -d opencv
unzip opencv_contrib-4.5.0.zip -d opencv/opencv-contrib
2、创建构建目录
cd opencv
mkdir build
cd build
3A、准备编译OpenCV + Contrib:(去掉OPENCV_EXTRA_MODULES_PATH不编译contrib)
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -D OPENCV_GENERATE_PKGCONFIG=ON ..
3B、准备编译CUDA版OpenCV
cmake \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=ON \
-D WITH_CUDA=ON \
-D CUDA_GENERATION="Auto" \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D CUDA_NVCC_FLAGS="-D_FORCE_INLINES" \
-D WITH_CUBLAS=1 \
-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules \
-D BUILD_opencv_hdf=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON ..
CFLAGS = -g `pkg-config --cflags opencv4`
CLIBS = -lpthread `pkg-config --libs opencv4`
4、编译
sudo make -j8 # 指定线程数
下载缺失文件:
fatal error: boostdesc_bgm.i: No such file or directory · Issue #1301 · opencv/opencv_contrib · GitHubhttps://github.com/opencv/opencv_contrib/issues/1301
下载压缩包:opencv_contrib编译缺失boostdesc_bgm文件-Nosuchfileordirectory.7z-C++文档类资源-CSDN文库https://download.csdn.net/download/momodosky/24981707 解压文件到opencv_contrib/modules/xfeatures2d/src目录下。
包含路径配置问题。
方法一:修改opencv/CMakeLists.txt中的include_directory,重新make;
方法二:执行命令find -name test_detectors_regression.impl.hpp,找到文件路径(opencv\modules\features2d),复制features2d目录到build目录下,重新make。
sudo make install
1、在/etc/ld.so.conf.d/文件夹下新建opencv4.conf,写入/usr/local/lib。
2、sudo ldconfig,更新pkg-config,以下命令查看安装。
pkg-config --libs opencv4
pkg-config --cflags opencv4
sudo rm -rf /etc/ld.so.conf.d/opencv4.conf
cd opencv/build
sudo make uninstall
Makefile样例(使用pkg-config确定包含路径和库路径):
CC = g++
CFLAGS = -g `pkg-config --cflags opencv4`
CLIBS = -lpthread `pkg-config --libs opencv4`
TARGET = ot
OBJ_DIR = obj
SRC_DIR = src
BIN_DIR = bin
SRC = $(wildcard $(SRC_DIR)/*.cpp)
OBJECTS = $(patsubst $(SRC_DIR)/%.cpp, %.o, $(SRC))
VPATH = $(SRC_DIR)
vpath %.o $(OBJ_DIR)
all: $(TARGET)
$(TARGET) : $(OBJECTS)
$(CC) -o $@ $(addprefix $(OBJ_DIR)/, $(OBJECTS)) $(CLIBS)
%.o : %.cpp
$(CC) -c $< -o $(OBJ_DIR)/$@ $(CFLAGS)
.PHONY : clean
clean:
@echo OBJECTS : $(OBJECTS)
rm -rf $(TARGET) $(OBJ_DIR)/*.o