OpenCV介绍及安装(linux)

lielll 2024-09-07 15:07:02 阅读 96

目录

OpenCV介绍

OpenCV的主要功能包括:

在Linux上安装OpenCV

方法一:从源代码编译安装

1. 安装依赖库:

2. 下载OpenCV源代码:

3. 配置并编译:

4. 安装:

5. 配置环境变量:

方法二:使用包管理器安装

linux环境链接opencv库


OpenCV介绍

        OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库。其使用一系列c语言函数和少量c+类实现,它包含了大量的图像处理和计算机视觉算法,这些算法被封装成了一系列易于使用的函数,使得开发者能够快速地构建出复杂的视觉应用。OpenCV支持多种操作系统,包括Linux、Windows和macOS,并且提供了多种编程语言的接口,如C++、Python、Java等,opencv可以运行在linux系统上,且其轻量,高效所以在嵌入式领域得到广泛的应用;

OpenCV的主要功能包括:

图像处理:提供了包括滤波、边缘检测、颜色空间转换等在内的多种图像处理方法。计算机视觉:支持目标检测、跟踪、人脸识别、3D重建等高级视觉任务。机器学习:提供了包括分类、聚类、回归分析等在内的一系列机器学习算法。视频处理:支持视频捕获、分析、处理等功能。

由于其功能强大且易于使用,OpenCV在科研、工业、医疗等多个领域都有广泛的应用。

在Linux上安装OpenCV

在Linux上安装OpenCV通常有两种方式:从源代码编译安装和使用包管理器安装。下面分别介绍这两种方法。

方法一:从源代码编译安装

1. 安装依赖库

        在编译OpenCV之前,需要安装一些必要的依赖库。这些库通常包括各种图像处理库、数学库、视频处理库等。具体的依赖库可能因Linux发行版的不同而有所差异。例如,在Ubuntu上,可以使用以下命令安装依赖库:

<code>sudo apt-get update

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

sudo apt-get install libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

2. 下载OpenCV源代码

从OpenCV的官方网站下载最新版本的源代码,或者使用git克隆其代码仓库。

3. 配置并编译

在源代码目录下,使用CMake配置编译选项,并生成Makefile文件。然后,使用make命令编译OpenCV。

4. 安装

编译完成后,使用make install命令安装OpenCV。

5. 配置环境变量

为了使程序能够找到OpenCV的库文件和头文件,需要将相应的路径添加到环境变量中。

方法二:使用包管理器安装

在Ubuntu等基于Debian的Linux发行版上,可以使用apt-get等包管理器直接安装OpenCV。例如:

sudo apt-get update

sudo apt-get install libopencv-dev

在Fedora等基于RPM的Linux发行版上,可以使用dnf等包管理器安装OpenCV。例如:

sudo dnf install opencv-devel

使用包管理器安装OpenCV通常更加简单快捷,但可能无法安装到最新版本的OpenCV。如果需要最新版本的OpenCV,或者需要自定义编译选项,那么从源代码编译安装可能是一个更好的选择。

查看opencv是否安装成功

dpkg -s libopencv -dev

Status: install ok install 代表安装成功

Version: 4.6.0+dfsg-13.1ubuntu1 opencv版本号

在线帮助文档

OpenCV - Open Computer Vision LibraryOpenCV provides a real-time optimized Computer Vision library, tools, and hardware. It also supports model execution for Machine Learning (ML) and Artificial Intelligence (AI).

icon-default.png?t=N7T8

https://opencv.org/

找到Documentation(在线帮助文档)

找到自己对应的opencv版本-点击zip即可下载

解压安装包-找到index.html-用浏览器打开

可以看到opencv的各种API

点击其中某个函数可以看到详细的参数说明,函数使用方法

下面是简单使用类

该类提供C ++ API,用于从摄像机捕获视频或读取视频文件和图像序列。

<code>#include <opencv2/core.hpp>

#include <opencv2/videoio.hpp>

#include <opencv2/highgui.hpp>

#include <iostream>

#include <stdio.h>

using namespace cv;

using namespace std;

int main(int, char**)

{

Mat frame;

//--- INITIALIZE VIDEOCAPTURE 初始化视频捕获

VideoCapture cap;

// open the default camera using default API 使用默认API打开默认相机

// cap.open(0);

// OR advance usage: select any API backend 或提前使用: 选择任何API后端

int deviceID = 0; // 0 = open default camera 打开默认相机

int apiID = cv::CAP_ANY; // 0 = autodetect default API 自动检测默认API

// open selected camera using selected API 使用选定的API打开选定的相机

cap.open(deviceID, apiID);

// check if we succeeded 检查我们是否成功

if (!cap.isOpened()) {

cerr << "ERROR! Unable to open camera\n"; //错误

return -1;

}

//--- GRAB AND WRITE LOOP 抓取和写入循环

cout << "Start grabbing" << endl //开始抓取

<< "Press any key to terminate" << endl; //按任意键终止

for (;;)

{

// wait for a new frame from camera and store it into 'frame'

// 等待来自相机的新帧并将其存储到 'frame' 中

cap.read(frame);

// check if we succeeded 是否成功

if (frame.empty()) {

cerr << "ERROR! blank frame grabbed\n";

break;

}

// show live and wait for a key with timeout long enough to show images

// 显示live并等待具有足够长的超时时间以显示图像的密钥

imshow("Live", frame);

if (waitKey(5) >= 0)

break;

}

// the camera will be deinitialized automatically in VideoCapture destructor

// 摄像机将在VideoCapture析构函数中自动取消初始化

return 0;

}

注意:比如使用videoCapture这个函数的时候要调用摄像头,如果dev无法加载出video设备

根目录下的 /dev,是否有video0 video 1 video2

如果没有按照以下设置

 

linux环境链接opencv库

-I:指定OpenCV库的头文件路径-L:指定OpenCV库的链接库路径-l:指定需要链接的OpenCV库文件名-o:指定文件输出名

<code>g++ opencv.cpp -o opencv -I/usr/include/opencv4 -L/usr/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_videoio

查看OpenCV库的头文件路径和链接库路径

pkg-config命令:用于管理库编译和链接参数的工具,可以查询安装在系统上的库的信息,包括库的名称、版本、头文件路径、链接库路径等。

查询opencv版本库信息 (opencv4是版本库名字,根据实际情况有所不同)

pkg-config --modversion opencv4

查询OpenCV库的头文件路径:

pkg-config --cflags opencv4

该命令会输出OpenCV库的头文件路径,例如:-I/usr/include/opencv4

查询OpenCV库的链接库路径:

pkg-config --libs opencv4

该命令会输出OpenCV库的链接库路径,例如:-L/usr/lib -lopencv_core -lopencv_highgui



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。