opencv新手入门之环境搭建

opencv基于unbuntu的源码编译安装方法详解

背景

我使用的是cmake编译,编辑器用的是轻量级的vscode,平台是在ubuntu18.04。当然我在为windows下也进行学习,不过因为毕业设计是基于linux平台的开发,所以我下来这个opencv系列的记录会比较着重讲解linux系统下的开发,不过opencv是跨平台的,各个平台只是编译方法略有差别,代码和思维都是一样的。

安装

大家英语好的话可以直接参考官网安装指南 opencv官网linux的c++版opencv安装指南


1. 下载源码

  1. 第一步;官网下载opencv的源码

这里需要说明下:
点击github会去opencv的github主页,在哪里不仅可以下载opencv的各个版本,各个平台的发行版,还可以下载opencv目前还没有纳入主版本的增强库

在这里插入图片描述
在这里插入图片描述

这里需要说明下就是我们国区访问github和opencv官网因为制度的原因都是非常慢的,如果遇到kb级别的下载速度别着急

    1. 科学xx解决
    2. 等待(比较漫长,中途还会失败需要手动重新开始)
    3. 下载别上下载好上传到百度云盘的包(上网搜索自己需要的版本)

2.安装依赖项

[必要包]
GCC 4.4.x or later
CMake 2.8.7 or higher
Git
GTK+2.x or higher, including headers (libgtk2.0-dev)
pkg-config
Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
[可选包] libtbb2 libtbb-dev
[可选包] libdc1394 2.x
[可选包] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
[可选包] CUDA Toolkit 6.5 or higher

命令行跑下面代码即可:

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

3. 编译

在这里插入图片描述

  1. 首先解压后的安装包后,进入安装包,然后执行下面命令

我们在源码下新建一个build文件夹,然后在这个文件夹里面编译源码,这样编译过程中的中间文件就会生成在这个目录下,方便我们管理,项目结构更加清洁!

cd ~/opencv
mkdir build
cd build
  1. 然后执行一下命令来进行开始构建项目

这一步会耗费很长的时间,中间需要下载一个CPU还是GPU的加速包源,可能会卡住,有科学上网加持会快很对,如果没有卡住就让他多等一会,或者我们也可也单独下载离线包,然后修改文件,这个可以在网上单独搜索以下,这里就不贴出来了

cmake -D CMAKE_BUILD_TYPE=Release
 -D CMAKE_INSTALL_PREFIX=/usr/local
  ..

参数解释

# 编译成发行版还是调试版,一般选择Release即可
 CMAKE_BUILD_TYPE=Release\Debug
# 最后安装在/usr/local目录下
 -D CMAKE_INSTALL_PREFIX=/usr/local ..
 # 增强包的路径,如果有就填写,没有可以不写
 -D OPENCV_EXTRA_MODULES_PATH=/home/cds/Downloads/opencv41/opencv_contrib-4.1.2/modules

4. 安装

这个j后面的数字,说的是并发执行的线程数,看自己电脑是几核几线程,不知道就填4把、

  1. 先执行

编译工程比较浩大,编译速度取决与CPU计算能力,我一般要1个小时

sudo make -j4
  1. 执行安装
    sudo make install

安装速度很快

如果在make -j4的过程中出现错误,不用担心,根据错误原因在控制台解决,再次编译,会随着上一次卡住的进度,继续编译,不会重新开始的!

可能出现的报错

采用的是源码编译的方式,所以可以查看 build 文件夹下的日志文件 CMakeDownloadLog.txt,在日志文件CMakeDownloadLog.txt中搜索 boostdesc_bgm.i 关键词 (不是在文件夹中搜索),
发现这个文件下载失败了。日志文件里就有它的下载地址,直接复制其下载地址到网页可以看该到文件的源码,直接拷贝源码并生存同名文件,放在 opencv_contrib/modules/xfeatures2d/src/ 路径下即可。

测试是否安装成功

找到 opencv/samples/cpp/example_cmake 目录下,官方已经给出了一个cmake的example,我们可以拿来测试下。按顺序执行:

cmake .
make
./opencv_example

即可看到打开了摄像头,在左上角有一个hello opencv ,即表示配置成功。

像这样-----原谅我的大红马赛克

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f2Jv7hgP-1579233431004)(/home/cds/.config/Typora/typora-user-images/image-20200117115122549.png)]

我在这里贴出操作的历史纪录供大家参考

cds@cds-TN15S:~/Downloads/Compressed/opencv-4.2.0/samples/cpp/example_cmake$ pwd/home/cds/Downloads/Compressed/opencv-4.2.0/samples/cpp/example_cmake
cds@cds-TN15S:~/Downloads/Compressed/opencv-4.2.0/samples/cpp/example_cmake$ cmake .
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found OpenCV: /usr/local (found version "4.2.0") 
-- OpenCV library status:
--     config: /usr/local/lib/cmake/opencv4
--     version: 4.2.0
--     libraries: opencv_calib3d;opencv_core;opencv_dnn;opencv_features2d;opencv_flann;opencv_highgui;opencv_imgcodecs;opencv_imgproc;opencv_ml;opencv_objdetect;opencv_photo;opencv_stitching;opencv_video;opencv_videoio
--     include path: /usr/local/include/opencv4
-- Configuring done
-- Generating done
-- Build files have been written to: /home/cds/Downloads/Compressed/opencv-4.2.0/samples/cpp/example_cmake
cds@cds-TN15S:~/Downloads/Compressed/opencv-4.2.0/samples/cpp/example_cmake$ make
Scanning dependencies of target opencv_example
[ 50%] Building CXX object CMakeFiles/opencv_example.dir/example.cpp.o
[100%] Linking CXX executable opencv_example
[100%] Built target opencv_example
cds@cds-TN15S:~/Downloads/Compressed/opencv-4.2.0/samples/cpp/example_cmake$ ./opencv_example 
Built with OpenCV 4.2.0
Capture is opened
^C

python如何安装

如果使用的是anconda的话。直接执行conda install py-opencv即可,如果是装的python的话/执行pip install py-opencv
测试方法

原创文章 116 获赞 207 访问量 66万+

猜你喜欢

转载自blog.csdn.net/sexyluna/article/details/104012425