1. 安装准备
1.1 安装依赖项
sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev libgtk2.0-dev pkg-config
1.2 下载opencv和contrib
去Opencv官网下载4.4.0的Sources,下好后解压
去github下载4.4.0的contrib压缩包
将contrib压缩包解压后放进之前解压好的Opencv Sources的文件夹下
2. 编译安装
在上图所示的文件夹中打开终端
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_ENABLE_NONFREE=YES -D OPENCV_EXTRA_MODULES_PATH=/home/yourname/opencv-4.4.0/opencv_contrib-4.4.0/modules/ ..
make -j4
sudo make install
交叉编译
cmake -D CMAKE_SYSTEM_NAME=linux -D CMAKE_C_COMPILER=/home/hkx/Tool/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc -D CMAKE_CXX_COMPILER=/home/hkx/Tool/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/home/hkx/YueXiang/OpenCV_ARM/OPenCV_ARM -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_ENABLE_NONFREE=YES -D OPENCV_EXTRA_MODULES_PATH=/home/hkx/YueXiang/OpenCV_ARM/opencv-3.3.1/opencv_contrib-3.3.1/modules ..
CMAKE_INSTALL_PREFIX是安装路径,如果没特殊需求建议就用/usr/local
OPENCV_ENABLE_NONFREE=YES是允许使用申请了专利的一些算法,必须加上这句
OPENCV_GENERATE_PKGCONFIG=ON因为opencv4默认不生成.pc文件,所以加上这句
OPENCV_EXTRA_MODULES_PATH是contrib包的路径,改成你自己的
3. 一些错误
或者到这个下载镜像下载:boostdesc_bgm.i,vgg_generated_48.i等.rar,放在 opencv_contrib/modules/xfeatures2d/src/ 路径下
2.关于找不到cuda.hpp的错误 找不到其他hpp也是类似这样的操作
方法:find . -name "cuda.hpp"
找到cuda.hpp这个文件的实际位置,将他的绝对路径复制下来
然后根据报错,找到相应文件并打开,将相对路径改为绝对路径
# include "/home/hkx/Include/opencv_contrib-3.3.1/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp"
find . -name "cuda.hpp"
会发现文件存在: ./opencv-3.4.6/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp
2、找到上述文件的路径,替换出错文件中引用cuda.hpp的位置代码即可。
四、示例代码
打开一张图片
#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat picture = cv::imread("1.png");
//图片必须添加到工程目下
//也就是和test.cpp文件放在一个文件夹下!!!
imshow("测试程序", picture);
waitKey(20150901);
}