Ubuntu 17.04系统下源码编译安装opencv的步骤详解

Ubuntu 17.04系统下源码编译安装opencv的步骤详解

在Ubuntu 17.04系统中,安装opencv可以通过源或二进制包进行,但由于源和二进制包中的opencv版本较低,不能满足一些开发者的需求。因此,通过源码编译来安装opencv是一个不错的选择。下面将详细介绍源码编译安装opencv的步骤。

步骤

  1. 安装必要的依赖项和工具(推荐使用apt-get安装):

sudo apt-get update
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

  1. 下载opencv源码:

git clone https://github.com/opencv/opencv.git
cd opencv

  1. 创建build目录并进入:

mkdir build
cd build

  1. 运行cmake并编译:

cmake ..
make -j8 //根据电脑CPU核心数来选择-j后面的数字,加快编译速度
sudo make install

  1. 安装完成后,配置opencv库的环境变量:

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

  1. 测试opencv是否安装成功:

pkg-config opencv --modversion

如果能够输出opencv的版本号,说明安装成功。

示例

示例1:使用cmake编译

mkdir MyProject           //创建项目目录
cd MyProject              //进入项目目录
vim CMakeLists.txt        //打开CMakeLists.txt文件

然后将以下内容复制到文件中,并保存。

cmake_minimum_required(VERSION 2.8)
project(MyProject)
find_package(OpenCV REQUIRED)
add_executable(myapp main.cpp)
target_link_libraries(myapp ${OpenCV_LIBS})

在项目目录下,创建一个名为main.cpp的文件,并将以下内容复制到文件中,并保存。

#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
    Mat img = imread("test.jpg");
    imshow("Image", img);
    waitKey();
    return 0;
}

打开终端并进入项目目录,运行以下命令:

mkdir build
cd build
cmake ..
make
./myapp

如果能够正常显示test.jpg的图像内容,说明opencv编译成功。

示例2:使用opencv的CMake模板编译

opencv提供了一个CMake模板,只需要简单的几步就可以编译并运行一个opencv项目。以下是详细的步骤:

在终端中进入opencv的samples/cpp目录:

cd opencv/samples/cpp/

将以下命令复制并粘贴到终端中:

g++ -ggdb facedetect.cpp -o facedetect `pkg-config --cflags --libs opencv`

执行上述命令后,将会生成一个名为facedetect的可执行文件。使用以下命令来运行该程序:

./facedetect --cascade="path/to/haar_cascade.xml" image.jpg

其中cascade参数是一个已经训练好的haar级联分类器(它用于检测人脸),而image.jpg是一个你希望载入的图像文件。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Ubuntu 17.04系统下源码编译安装opencv的步骤详解 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • ++*p、*p++和*++p的区别

    ++p、p++和*++p的区别 在C/C++语言中有三种运算符,它们是紧密相关的指针操作符,即前缀自增运算符(++)、后缀自增运算符(++)和解引用运算符()。而++p、p++和++p这三个表达式看上去非常相似,但它们却有着完全不同的意义和效果。 ++*p 先看一下++p这个表达式的含义和用法。++p表示的是先对指针p指向的值执行自增操作,然后返回该值的新值…

    C 2023年5月10日
    00
  • CentOS操作系统安装CMake图文步骤

    下面就为大家介绍 CentOS 操作系统安装 CMake 的图文步骤: 1. 下载CMake 首先到CMake的官网 http://cmake.org/download/ 下载最新版的 CMake,选择合适的版本并下载。 2. 解压CMake安装包 将下载好的 CMake 安装包解压到合适的目录下,例如 /opt 目录。使用以下命令解压: tar -zxvf…

    C 2023年5月23日
    00
  • C语言中如何进行面向对象编程?

    在C语言中进行面向对象编程(Object-Oriented Programming)可以采用结构体(Struct)和指针(Pointer)的方式来实现。 首先,我们需要定义一个结构体,包含对象的属性和方法。属性可以使用变量来定义,方法可以使用函数指针来定义。例如: typedef struct { int x; int y; void (*draw)(voi…

    C 2023年4月27日
    00
  • C/C++中如何判断某一文件或目录是否存在

    在C/C++中,判断某一文件或目录是否存在有多种方法,下面分别介绍两种常用的方法。 方法一:access()函数 通过使用access()函数可以检查文件或目录是否存在。access()函数通过测试是否能够访问指定的文件或目录来判断它是否存在。 #include <stdio.h> #include <unistd.h> #inclu…

    C 2023年5月23日
    00
  • Java日常练习题,每天进步一点点(25)

    下面是对于“Java日常练习题,每天进步一点点(25)”的完整攻略。 题目描述 该题目共包含7个子问题,主要考察的是Java中的数组的使用。具体的题目描述可以参考原文链接:Java日常练习题,每天进步一点点(25)。 解题思路 1.第1题 创建一个长度是3的字符串数组,输入3个字符串到这个数组当中。然后使用一个循环,对这个字符串数组进行反转。 首先,使用Sc…

    C 2023年5月23日
    00
  • Win10 TH2正式版升级遇到错误0xC1900101的临时解决办法

    Win10 TH2正式版升级遇到错误0xC1900101的临时解决办法 问题描述 在升级Win10 TH2正式版时,可能会遇到错误代码为0xC1900101的错误,这一错误通常意味着升级过程中出现了不兼容的硬件、软件或者驱动程序。在此情况下,升级过程无法顺利完成,需要采取一些措施解决这一问题。 临时解决办法 1. 删除不兼容的驱动程序 可能任何一个不兼容的驱…

    C 2023年5月24日
    00
  • 详解java 中Spring jsonp 跨域请求的实例

    首先要说明的是jsonp请求是一种跨域方式,它的实现原理是网页通过添加一个元素来向服务器请求JSON数据,服务器接收到请求后,将数据放在一个指定的回调函数中返回给客户端,客户端再对返回的数据进行处理。下面就是详解java中Spring jsonp跨域请求的完整攻略。 一、前端实现jsonp请求 创建一个函数,用来发送jsonp请求并处理返回的数据: func…

    C 2023年5月23日
    00
  • 使用系统默认的备份还原注册表的图文教程

    使用系统默认的备份还原注册表的图文教程 首先,备份注册表非常重要。在我们进行一些重要的系统修改时,需要备份注册表以防万一。系统默认的备份功能十分实用,可以快速地恢复到之前的状态。以下是使用系统默认的备份还原注册表的步骤: 打开“运行”窗口 我们可以使用快捷键 Win + R 打开运行窗口。 输入 regedit 命令 在弹出的运行窗口中,输入 regedit…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部