• OpenCV-Python学习(1)—— OpenCV历史与安装


    1. OpenCV 介绍

    OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 [1] 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
    OpenCV用C++语言编写,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令, 如今也提供对于C#、Ch、Ruby,GO的支持。

    2. OpenCV 发展历史

    时间发布版本
    1999年CVL项目启动。主要目标是人机界面,能被UI调用的实时计算机视觉库,为Intel处理器做了特定优化。
    2006年支持Mac OS的OpenCV 1.0发布。
    2009年Version 2.0发布。
    2015年发布OpenCV 3.0。
    2018年发布OpenCV 4.0。
    2022年4月发布OpenCV 4.5.5。
    注意

    OpenCV 1.0版本和OpenCV 2.0版本差距比较大;OpenCV 2.0版本和OpenCV 3.0版本近似;OpenCV 3.0版本和OpenCV 4.0版本差距比较大。因此开始需要找到python对应版本的OpenCV版本

    3. OpenCV 模块

    1. OpenCV 主要模块
    模块介绍
    ml机器学习库(Machine Learning Library, MLL)是一组可用于分类、回归和聚类目的的类和方法
    calib3d摄像机标定和三维重建,包括基本的多视点几何算法、立体匹配算法、目标姿态估计、单摄像机和立体摄像机标定以及三维重建
    features2d二维特征框架,该模块包括特征检测器、描述符和描述符匹配器
    objdetect目标检测,检测预定义类的对象和实例(例如,人脸、眼睛、人和汽车)
    stitching图像拼接,实现了一个自动拼接全景图像的拼接流水线
    photo计算摄影,提供一些计算摄影的函数
    dnn深度神经网络(Deep neural network, DNN)模块,本模块包含以下内容:用于创建新层的API、一组预定义的常用层、从层构造和修改神经网络的API、从不同深度学习框架加载序列化网络模型的功能等
    Core核心模块,是定义基本数据结构的模块,也包括库中所有其他模块使用的基本函数
    Imgproc图像处理模块,包括图像滤波、几何图像变换、颜色空间变换和直方图
    Imgcodecs图像文件读写
    HighGui高级GUI,提供UI功能的接口,可以执行以下操作:创建和操作可以显示的窗口、将滑动条添加到窗口、键盘命令和处理鼠标事件等
    VideoIO视频I/O,视频捕获和视频编解码器的接口
    Video视频分析模块,包括背景减法、运动估计和目标跟踪算法
    2. OpenCV 扩展模块

    视频编码解码、CUDA加速、IE加速、DNN扩展功能、背景分析、图像分析、光流分析。

    3. 注意
    1. 没有足够稳定性;
    2. 需要自己编译。

    4. OpenCV 源码和教程

    1. GitHub源码
    2. OpenCV 4.5.5 文档

    5. OpenCV-Python 安装

    1. 只安装【主模块】
    pip install opencv-python==4.6.0.66
    
    2. 使用镜像安装 OpenCV-Python
    pip install opencv-python==4.6.0.66 -i https://pypi.tuna.tsinghua.edu.cn/simple
    
    3. 安装【主模块和附加模块】
    pip install opencv-contrib-python
    
    4. 注意

    在不使用附加模块的情况,尽量只安装主模块!

  • 相关阅读:
    Fiverr是什么?做外贸独立站能在Fiverr找到哪些外包服务?
    SAP MM学习笔记31 - 已割当供给元的购买依赖
    快解析结合任我行crm
    Elasticsearch重要配置参数
    设计模式之模板方法模式
    十分钟理解OSPF路由协议
    Java从入门到架构师__JavaSE
    Mybatis - Spring整合后一级缓存失效了
    利用微调的deberta-v3-large来预测情感分类
    Swift 判断 A B 两个时间是不是同一天,A 是不是 B 的昨天
  • 原文地址:https://blog.csdn.net/m0_38082783/article/details/127101348