Sep 29, 2018 原创文章

  从源码开始,在Ubuntu上安装OpenCV

在Ubuntu上编译源码,并安装配置OpenCV

分享到: 0

请保证您的浏览器支持MathJax插件,以免数学公式无法显示


所需工具

Ubuntu 系统:系统版本 Ubuntu 16.04.4 LTS

Cmake: cmake version 3.5.1

Make: GNU Make 4.1

OpenCV 源码:版本 2.4.13.6 下载地址:https://www.opencv.org/releases.html 或 https://github.com/opencv/opencv/archive/2.4.13.6.zip (其他版本的OpenCV类似)

从源码开始安装

使用CMake 生成 makefile

1、解压下载到的压缩包

2、在源码的根目录下新建文件夹“build”

3、进入到新建的”build”文件下,生成CMAKE配置环境,并进行配置

cd build
ccmake .

首先是按照要求生成config,待其自动完成后,对cmake选项进行配置。

设置cmake选项

这里有两个需要注意的选项:

CMAKE_INSTALL_PREFIX /usr/local

WITH_CUDA OFF

第一个选项是选择最后的安装位置,第二个选项是选择是否需要安装cuda版本

完成设置后,按c保存设置,再按q退出设置界面,然后进入下一步

4、生成Makefile,并查看CMAKE的配置情况

cmake .

使用Make 编译并安装

在使用cmake生成Makefile完成之后,开始使用make进行编译和安装。这一切同样是在之前生成的build文件夹之下完成的。

1、进入到build文件夹下

sudo make install

输入命令,等待完成编译和安装,这一过程需要一段较长的时间,视电脑的配置而定。

编写Demo测试安装结果

代码清单

在完成了编译和安装之后,需要编写一个简单的demo测试一下安装是否成功。具体的代码如下所列。其实现的功能就是读取一张图片并显示出来。


#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv; 
int main()
{	
    Mat srcImage = imread("./lena.jpg");	
    imshow("srcIMage",srcImage); 	
    waitKey(0); 	
    return 0;
    
}

编写CMakeLists.txt

编写完成代码,还需要手动编写CMakeLists.txt文件,以方便使用CMake生成makefile,并使用make完成最终的编译。



set(OpenCV_DIR "/usr/local/opencv/share/OpenCV")

# project name
PROJECT(opencv_lena)

# requirement of cmake version
cmake_minimum_required(VERSION 3.5)

# set the directory of executable files
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${opencv_lena_SOURCE_DIR}/bin)

# find required opencv
find_package(OpenCV REQUIRED)

# directory of opencv headers 包含Opencv的头文件
include_directories(${OpenCV_INCLUDE_DIRS})

# name of executable file and path of source file
add_executable(opencv_lena main.cpp)

# directory of opencv library 设置包含的头文件的路径
link_directories(${OpenCV_LIBRARY_DIRS})

# opencv libraries 设置库文件的路径
target_link_libraries(opencv_lena ${OpenCV_LIBS})


在CMakelists.txt中:

1、多版本OpenCV切换

set(OpenCV_DIR “/usr/local/opencv/share/OpenCV”)

如果安装了多个版本的OpenCV,则需要上述语句,告诉CMake 所需的OpenCV版本的安装路径在哪里。

2、设置项目名称

# project name
PROJECT(opencv_lena)

3、设置CMake所需的最低版本

# requirement of cmake version
cmake_minimum_required(VERSION 3.5)

4、设置最终生成的二进制文件的位置

# set the directory of executable files set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${opencv_lena_SOURCE_DIR}/bin)

5、搜寻OpenCV所需的可执行文件

# find required opencv find_package(OpenCV REQUIRED)

6、添加包含OpenCV的头文件

# directory of opencv headers 包含Opencv的头文件 include_directories(${OpenCV_INCLUDE_DIRS})

7、向工程中添加代码文件

# name of executable file and path of source file add_executable(opencv_lena main.cpp)

8、连接包含头文件的路径

# directory of opencv library 设置包含的头文件的路径 link_directories(${OpenCV_LIBRARY_DIRS})

9、连接所需的库文件

# opencv libraries 设置库文件的路径 target_link_libraries(opencv_lena ${OpenCV_LIBS})

使用CMake+Make完成编译

完成了CMakeLists.txt文件的编写,下面使用CMake和Make完成demo工程最后的编译工作。

1、使用CMake生成Makefile

在工程文件夹下面新建build文件,然后进入。

输入:

cmake ..

等待完成

– Configuring done
– Generating done
– Build files have been written to: /home/video201/imszp/opencv_example/test/build

2、使用Make进行编译

进入build文件夹,输入命令:

make

等待完成编译

Scanning dependencies of target opencv_lena
[ 50%] Building CXX object CMakeFiles/opencv_lena.dir/main.cpp.o
[100%] Linking CXX executable ../bin/opencv_lena
[100%] Built target opencv_lena

完成编译之后,在即可在CMakeLists.txt中设定的文件夹下面看到生成的二进制可执行文件。运行,即可看到结果如下:

Demo运行结果

打赏


感谢您的支持,我会继续努力的!

扫码支持

长按识别二维码或打开支付宝扫一扫 完成打赏
或 使用<支付宝链接>打赏


关闭

分享到: 0