Ubuntu18.04安装opencv 3.2.0的解决方法

下面是Ubuntu18.04安装opencv 3.2.0的解决方法攻略:

一、安装依赖项

首先,要安装一些基本依赖项。在终端中执行以下命令:

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

二、安装openCV

1. 下载源码

我们需要下载openCV 3.2.0的源码。可以在openCV官网下载,或者使用以下命令在终端中下载:

wget https://github.com/opencv/opencv/archive/3.2.0.zip

2. 解压源码并进入目录

解压下载的源码,并进入opencv-3.2.0目录:

unzip 3.2.0.zip
cd opencv-3.2.0/

3. 编译

执行以下命令开始编译:

mkdir build
cd build/
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j4
sudo make install

其中:

  • -D CMAKE_BUILD_TYPE=RELEASE 表示以发布模式编译openCV。
  • -D CMAKE_INSTALL_PREFIX=/usr/local 表示将openCV的安装路径设置为/usr/local

三、测试

为了验证openCV安装成功,我们可以尝试运行一个简单的测试程序。

1. 创建测试文件

使用以下命令在当前目录下创建一个名为test.cpp的文件:

nano test.cpp

在文件中粘贴以下内容:

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

int main(int argc, char** argv)
{
  cv::Mat image = cv::imread("test.jpg", CV_LOAD_IMAGE_COLOR);
  if(!image.data)
    {
      std::cout <<  "Could not open or find the image" << std::endl ;
      return -1;
    }
  cv::namedWindow("Display window", cv::WINDOW_AUTOSIZE );
  cv::imshow("Display window", image);
  cv::waitKey(0);
  return 0;
}

其中test.jpg是需要打开的图片文件名。

2. 编译测试程序

使用以下命令编译测试程序:

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

3. 运行测试程序

使用以下命令运行测试程序:

./test

如果成功打开了图片,则说明openCV已经安装成功了。

示例1:使用openCV进行人脸检测

下面是一个简单的示例,演示如何使用openCV进行人脸检测。这个示例的前提是你已经安装好openCV。

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

using namespace std;

int main(int argc, const char* argv[])
{
    if(argc != 2) {
        cerr << "Usage: " << argv[0] << " <Image_Path>" << endl;
        return -1;
    }

    // Load the cascade
    cv::CascadeClassifier cascade;
    cascade.load("haarcascade_frontalface_default.xml");

    // Load image
    cv::Mat image = cv::imread(argv[1]);

    // Detect faces
    vector<cv::Rect> faces;
    cascade.detectMultiScale(image, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, cv::Size(30, 30));

    // Draw rectangle around faces
    for(int i = 0; i < faces.size(); i++) {
        cv::Point topLeft(faces[i].x, faces[i].y);
        cv::Point bottomRight(faces[i].x + faces[i].width, faces[i].y + faces[i].height);
        cv::rectangle(image, topLeft, bottomRight, cv::Scalar(255, 255, 255), 2, 8, 0);
    }

    // Display result
    cv::imshow("result", image);
    cv::waitKey(0);

    return 0;
}

说明:

  • 该示例可通过命令行创建一个图片文件,然后读入该图片文件进行人脸检测,并在图片中画出人脸矩形框。

示例2:使用openCV进行图像识别

下面是一个简单的示例,演示如何使用openCV进行基本图像识别。这个示例的前提是你已经安装好openCV。

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

using namespace std;

int main()
{
    // Load image
    cv::Mat frame = cv::imread("test.jpg");

    // Convert image to grayscale
    cv::Mat gray;
    cv::cvtColor(frame, gray, cv::COLOR_BGR2GRAY);

    // Load the trained data-file
    cv::CascadeClassifier faceCascade;
    faceCascade.load("haarcascade_frontalface_default.xml");

    // Detect faces
    std::vector<cv::Rect> faces;
    faceCascade.detectMultiScale(gray, faces, 1.2, 3);

    // Draw rectangles around faces
    for(int i = 0; i < faces.size(); i++) {
        cv::rectangle(frame, faces[i], cv::Scalar(0, 255, 0), 4);
    }

    // Display result
    cv::imshow("result", frame);
    cv::waitKey(0);

    return 0;
}

说明:

  • 该示例可通过读入一个图片文件进行基本图像识别,并在图片中画出识别出来的目标矩形框。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Ubuntu18.04安装opencv 3.2.0的解决方法 - Python技术站

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

相关文章

  • Django中cookie的基本使用方法示例

    当用户访问网站时,网站可以通过HTTP协议中的Cookie机制,在用户的计算机上存储一些数据。Django框架提供了简单易用的API,让我们可以轻松地使用和管理Cookie。下面将详细讲解Django中cookie的基本使用方法示例。 创建和设置Cookie Django中,我们可以使用set_cookie方法创建和设置Cookie。下面就是一个简单的示例代…

    人工智能概览 2023年5月25日
    00
  • Python 3 使用Pillow生成漂亮的分形树图片

    Python 3 使用Pillow生成漂亮的分形树图片 分形树是一种美丽而复杂的几何图形,常用于数学、计算机图形和平面设计等领域。在本文中,我们将介绍如何使用Python 3和Pillow库来生成漂亮的分形树图片。 步骤1:安装Pillow库 Pillow是Python开发人员常用的图像处理库之一。可以使用pip命令轻松安装Pillow库: pip inst…

    人工智能概论 2023年5月25日
    00
  • VS2019下opencv4.1.2配置图文教程(永久配置)

    下面我将为您详细讲解“VS2019下opencv4.1.2配置图文教程(永久配置)”。 简介 OpenCV是一个计算机视觉库,可以用于图像处理和计算机视觉任务。在Visual Studio环境下安装和配置OpenCV是一个常见的任务,由于环境的不同,存在很多种方法进行配置。本文将介绍使用VS2019在Windows操作系统下,利用最新版本的OpenCV(4.…

    人工智能概论 2023年5月24日
    00
  • 编写每天定时切割Nginx日志的脚本

    编写每天定时切割Nginx日志的脚本可以有效的管理日志文件,避免日志文件过大导致服务器性能问题,同时还能提供更好的日志管理体验。下面介绍一下具体的步骤。 1. 安装 logrotate 工具 logrotate 是一个日志管理工具,可以用于指定日志目录,日志文件切割方式和周期等相关操作。在 CentOS 上,通过以下命令安装: yum install -y …

    人工智能概览 2023年5月25日
    00
  • 使用Django简单编写一个XSS平台的方法步骤

    下面是使用 Django 简单编写一个 XSS 平台的方法步骤: 1. Django 项目的基本设置 首先,需要创建一个 Django 项目。在终端输入以下命令: django-admin startproject XssPlatform 这将会创建一个名为 XssPlatform 的 Django 项目。接下来,切换到该项目的根目录下并执行以下命令创建一些…

    人工智能概论 2023年5月25日
    00
  • django admin添加数据自动记录user到表中的实现方法

    实现django admin添加数据自动记录user到表中的方法,可以通过重载视图函数或使用信号实现。以下是详细攻略: 重载视图函数的实现方法 在django的admin视图中,可以通过获取当前请求的user,然后将其保存到特定的表中。首先,创建一个Mixin类,并且在其中添加特定的函数,使其能够记录用户信息。示例代码: # accounts/mixin.p…

    人工智能概览 2023年5月25日
    00
  • Spring Cloud中Sentinel的两种限流模式介绍

    Spring Cloud中的Sentinel框架是一个轻量级的流量控制框架,它提供了两种主要的限流模式:流量控制和熔断降级。以下是对这两种模式的详细介绍: 流量控制 直接限流模式 Sentinel中的直接限流模式是一种比较简单的限流模式,在该模式下,Sentinel会限制每个资源对应的请求流量不得超过预定的阈值,一旦超过这个阈值,Sentinel就会拒绝请求…

    人工智能概览 2023年5月25日
    00
  • win7系统关闭美化桌面的视觉效果来提升性能

    下面我将详细讲解“win7系统关闭美化桌面的视觉效果来提升性能”的完整攻略,步骤如下: 1. 打开系统属性 右击计算机图标,选择“属性”,或者直接在开始菜单中搜索“systempropertiesadvanced”,进入系统属性。 2. 进入性能选项 在打开的系统属性窗口中,选择“高级”选项卡,然后点击“设置”按钮,进入性能选项。 3. 关闭视觉效果 在性能…

    人工智能概览 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部