-
一、安装准备
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
三、编译
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 ..
- OPENCV_GENERATE_PKGCONFIG=ON生成opencv4.pc,支持pkg-config(一般用于C/C++编译连接选项):
CFLAGS = -g `pkg-config --cflags opencv4`
CLIBS = -lpthread `pkg-config --libs opencv4`
4、编译
sudo make -j8 # 指定线程数
- [7x%]报错: .../opencv_contrib/modules/xfeatures2d/src/boostdesc.cpp:654:20: fatal error: boostdesc_bgm.i: No such file or directory
下载缺失文件:
下载压缩包:opencv_contrib编译缺失boostdesc_bgm文件-Nosuchfileordirectory.7z-C++文档类资源-CSDN文库https://download.csdn.net/download/momodosky/24981707 解压文件到opencv_contrib/modules/xfeatures2d/src目录下。
- [ 8x%]报错:.../opencv_contrib/modules/xfeatures2d/test/test_features2d.cpp:51:10: fatal error: features2d/test/test_detectors_regression.impl.hpp: No such file or directory
包含路径配置问题。
方法一:修改opencv/CMakeLists.txt中的include_directory,重新make;
方法二:执行命令find -name test_detectors_regression.impl.hpp,找到文件路径(opencv\modules\features2d),复制features2d目录到build目录下,重新make。
四、安装
sudo make install
五、环境配置(C/C++)
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