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

yizhihongxing

下面是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日

相关文章

  • 正则表达式匹配路由的实现代码

    正则表达式匹配路由是一种常见的Web框架实现方式。本文将详细讲解如何使用正则表达式匹配路由的实现代码。 准备工作 在进行正则表达式匹配路由的实现之前,需要先了解以下几个概念: 正则表达式(Regular Expression) URL中的动态参数(Dynamic Parameters) URL参数的提取方法 正则表达式匹配路由的实现步骤 使用正则表达式匹配路…

    人工智能概览 2023年5月25日
    00
  • python调用百度AI接口实现人流量统计

    下面是python调用百度AI接口实现人流量统计的完整攻略: 第一步:注册百度AI开发者账号 在百度AI官网注册一个开发者账号,获取到API Key和Secret Key,用于调用百度AI的接口。 第二步:创建百度AI应用 进入控制台,创建一款应用,获取到应用ID,用于调用百度AI的接口。 第三步:安装Python SDK 百度AI提供了Python SDK…

    人工智能概论 2023年5月25日
    00
  • SpringCloud可视化链路追踪系统Zipkin部署过程

    下面我将详细讲解“SpringCloud可视化链路追踪系统Zipkin部署过程”的完整攻略。 一、Zipkin介绍 Zipkin是一个开源的分布式跟踪系统,它可以帮助我们监控和调试微服务架构中的调用链路。Zipkin圆形对以下方面提供支持:- 请求跟踪和调用时间分析- 单个请求的耗时分析- 端到端的请求跟踪- 链路的拓扑结构分析 二、Zipkin Serve…

    人工智能概览 2023年5月25日
    00
  • Node+OCR实现图像文字识别功能

    Node+OCR实现图像文字识别功能攻略 简介 本攻略旨在介绍如何使用Node.js和OCR技术实现图像文字识别功能,以便于开发者在实际项目中应用。 技术背景 OCR(Optical Character Recognition)即光学字符识别技术,是指通过特定的算法将图像中的文字转换成可编辑文本,通常用于文本语义分析、汉字输入、车牌识别等场景中。 实现步骤 …

    人工智能概论 2023年5月25日
    00
  • MongoDB数据库设置账号密码完整步骤

    下面是“MongoDB数据库设置账号密码完整步骤”的完整攻略: 一、开启MongoDB的权限认证 在MongoDB中开启权限认证是保证数据安全性的基本方法。开启方法如下: 1.进入MongoDB Windows系统,在CMD中输入以下命令: cd C:\Program Files\MongoDB\Server\4.2\bin mongo.exe 2.连接服务…

    人工智能概论 2023年5月25日
    00
  • window10下pytorch和torchvision CPU版本安装教程

    下面是关于在Windows 10上安装PyTorch和torchvision的完整攻略。 环境准备 在开始安装过程之前,我们需要确保本地环境已经安装了Anaconda。这里以安装Anaconda最新版为例。 创建虚拟环境 首先,我们需要在Anaconda中创建一个新的虚拟环境来安装PyTorch和torchvision。在Anaconda Prompt命令行…

    人工智能概览 2023年5月25日
    00
  • OpenCV半小时掌握基本操作之分水岭算法

    下面是详细的讲解 “OpenCV半小时掌握基本操作之分水岭算法” 的完整攻略。 一、前置知识 在学习 OpenCV 的分水岭算法之前,需要掌握以下基本知识: 图像的读取和显示。 彩色图像与灰度图像的相互转换。 图像的二值化处理。 腐蚀、膨胀、开操作和闭操作等基本形态学操作。 二、分水岭算法原理 分水岭算法是一种基于图像的分割方法,它的原理是将图像看作一个地形…

    人工智能概论 2023年5月25日
    00
  • Django ORM 多表查询示例代码

    下面我将为你详细讲解 Django ORM 多表查询示例代码的完整攻略。 什么是Django ORM Django ORM(Object-Relational Mapping)是 Django 框架中的一个组件,它将数据库和 Python 对象之间创建了一种映射关系。我们可以使用 Python 代码操作数据库,无需编写 SQL 语句,这大大减少了我们编写数据…

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