参考 https://zhuanlan.zhihu.com/p/573341843
0. 依赖的安装
常规安装,除此之外,百度一下,少啥装啥
# bianyihuanjingxiangguan
sudo apt install -y g++
sudo apt install -y cmake
sudo apt install -y make
# opencv xiangguan
sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
1.cmake
# cd opencv-dir
mkdir build
cd build
# -DWITH_QT=ON 可以在imshow的时候显示到像素
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.4.2/modules -DOPENCV_GENERATE_PKGCONFIG=ON -DWITH_QT=ON ..
2. make
# 我的电脑CPU是12核,数字根据你电脑核数调整
make -j12
- 可能出现的问题一:文件不存在,先找到缺少的文件,然后将报错的地方替换成找到文件的绝对路径
xxxxxxxxxx/opencv-3.4.2/modules/stitching/include/opencv2/stitching/detail/matchers.hpp:52:12: fatal error: opencv2/xfeatures2d/cuda.hpp: No such file or directory
# include "opencv2/xfeatures2d/cuda.hpp"
找到缺少的文件,实际肯定是有的
find . -name “xfeatures2d.hpp”
注意这里的路径,推荐绝对路径,不然还是可能因为路径问题报错,替换的过程:
- 可能出现的问题二:缺少例如boostdesc_bgm_hd.i的文件,解决方法是单独下载这个文件放到指定地方(opencv_contrib/modules/xfeatures2d/src/),再make,参考: https://blog.csdn.net/ben_xiao_hai_123/article/details/126262891
xxxxxxx/opencv_contrib-3.4.2/modules/xfeatures2d/src/boostdesc.cpp:663:20: fatal error: boostdesc_bgm_hd.i: No such file or directory
#include "boostdesc_bgm_hd.i"
^~~~~~~~~~~~~~~~~~~~
注意:我这里没有make install,因为如果make install 则会安装到系统目录下,不方便多版本opencv安装,如果你想安装到/usr/xxxx下,输入:sudo make install
3. 最后的结果测试
CMakeLists:
cmake_minimum_required(VERSION 3.19)
project(test)
# 因为我没有make install 所以需要手动指定opencv的路径,填入的路径就是找到的OpenCVConfig.cmake所在的路径
set(OpenCV_DIR "xxxxxxxxx/build")
set(CMAKE_CXX_STANDARD 14)
find_package(OpenCV REQUIRED)
add_executable(test main.cpp)
target_link_libraries(test ${OpenCV_LIBS})
main.cpp
#include <iostream>
#include "opencv2/opencv.hpp"
int main() {
cv::Mat img = cv::Mat::zeros(500, 500, CV_8UC3);
cv::imshow("img", img);
cv::waitKey(0);
}
可以完美显示并放大后可以看大具体位置的像素值