OpenCV先容及安装(linux)

打印 上一主题 下一主题

主题 666|帖子 666|积分 1998

目录
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上,可以利用以下下令安装依靠库:
  1. sudo apt-get update
  2. sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
  3. 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。例如:

  1. sudo apt-get update
  2. sudo apt-get install libopencv-dev
复制代码

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

  1. sudo dnf install opencv-devel
复制代码

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


检察opencv是否安装成功
  1. 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).
https://opencv.org/
找到Documentation(在线帮助文档)

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

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

可以看到opencv的各种API

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

下面是简单利用类
该类提供C ++ API,用于从摄像机捕获视频或读取视频文件和图像序列。
  1. #include <opencv2/core.hpp>
  2. #include <opencv2/videoio.hpp>
  3. #include <opencv2/highgui.hpp>
  4. #include <iostream>
  5. #include <stdio.h>
  6. using namespace cv;
  7. using namespace std;
  8. int main(int, char**)
  9. {
  10.     Mat frame;
  11.     //--- INITIALIZE VIDEOCAPTURE 初始化视频捕获
  12.     VideoCapture cap;
  13.     // open the default camera using default API 使用默认API打开默认相机
  14.     // cap.open(0);
  15.     // OR advance usage: select any API backend 或提前使用: 选择任何API后端
  16.     int deviceID = 0;             // 0 = open default camera    打开默认相机
  17.     int apiID = cv::CAP_ANY;      // 0 = autodetect default API 自动检测默认API
  18.     // open selected camera using selected API    使用选定的API打开选定的相机
  19.     cap.open(deviceID, apiID);
  20.     // check if we succeeded      检查我们是否成功
  21.     if (!cap.isOpened()) {
  22.         cerr << "ERROR! Unable to open camera\n";    //错误
  23.         return -1;
  24.     }
  25.     //--- GRAB AND WRITE LOOP    抓取和写入循环
  26.     cout << "Start grabbing" << endl    //开始抓取
  27.         << "Press any key to terminate" << endl; //按任意键终止
  28.     for (;;)
  29.     {
  30.         // wait for a new frame from camera and store it into 'frame'
  31.         // 等待来自相机的新帧并将其存储到 'frame' 中
  32.         cap.read(frame);
  33.         // check if we succeeded    是否成功
  34.         if (frame.empty()) {
  35.             cerr << "ERROR! blank frame grabbed\n";
  36.             break;
  37.         }
  38.         // show live and wait for a key with timeout long enough to show images
  39.         // 显示live并等待具有足够长的超时时间以显示图像的密钥
  40.         imshow("Live", frame);
  41.         if (waitKey(5) >= 0)
  42.             break;
  43.     }
  44.     // the camera will be deinitialized automatically in VideoCapture destructor
  45.     // 摄像机将在VideoCapture析构函数中自动取消初始化
  46.     return 0;
  47. }
复制代码
注意:好比利用videoCapture这个函数的时间要调用摄像头,如果dev无法加载出video装备
根目录下的 /dev,是否有video0 video 1 video2
如果没有按照以下设置



 
linux情况链接opencv库


  • -I:指定OpenCV库的头文件路径
  • -L:指定OpenCV库的链接库路径
  • -l:指定必要链接的OpenCV库文件名
  • -o:指定文件输着名
  1. 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是版本库名字,根据实际情况有所不同)
  1. pkg-config --modversion opencv4
复制代码
查询OpenCV库的头文件路径:
  1. pkg-config --cflags opencv4
  2. 该命令会输出OpenCV库的头文件路径,例如:-I/usr/include/opencv4
复制代码
查询OpenCV库的链接库路径:
  1. pkg-config --libs opencv4
  2. 该命令会输出OpenCV库的链接库路径,例如:-L/usr/lib -lopencv_core -lopencv_highgui
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

不到断气不罢休

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表