OpenCV基本介绍和安装

2023-05-16

OpenCV是一个通用、开源、功能强大的图像处理和计算机视觉库。

官方网站:Home - OpenCV

1999年,加里·布拉德斯基在Intel公司创建了计算机视觉库(Computer Vision Library,CVL)项目,项目旨在提供通用的计算机视觉接口,接口用C++语言实现,以开源方式发布。

2006年10月,OpenCV 1.0版本正式发布,到目前2022年为止已经更新到4.5版本。

一、安装opencv-python版本

OpenCV-Python是由原始OpenCV C++实现的Python包装器,是OpenCV库的Python接口。

用户通过OpenCV-Python可获得两大好处:(1)代码运行速度与原始C/C ++代码一样快(因为它在后台运行的是实际C++代码);(2)用Python编写代码更容易。

OpenCV-Python需要使用NumPy库,OpenCV在程序中使用NumPy数组存储图像数据。

安装指令:

更新pip源:python -m pip install --upgrade pip 
安装NumPy包:pip install numpy
安装openv-python包:pip install opencv-python

二、OpenCV主要功能及模块介绍

1、内置基本数据结构和输入输出功能

OpenCV内置了丰富的与图像处理有关的数据结构,如Image、Point、Rectangle等。 core模块实现了各种基本的数据结构。 imgcodecs模块提供了图像文件的读写功能,用户使用简单的命令即可读写图像文件。

2、图像处理操作

imgproc模块提供了图像处理操作,如图像过滤、几何图像变换、绘图、色彩空间转换、直方图等。

3、图形用户界面操作

highgui模块提供了图像的图形窗口操作功能,如创建窗口显示图像或者视频、令窗口响应键盘和鼠标事件、操作窗口中图像的某个区域等。

4、视频分析

 video模块提供了视频分析功能,如分析视频中连续帧之间的运动、跟踪视频中的目标。videostab模块提供了视频稳定处理功能,可解决拍摄视频时的抖动问题。optflow模块提供了与光流操作相关的算法。

5、3D重建 

calib3d模块提供了3D重建功能,可根据2D图像创建3D场景。

6、特征提取

features2d模块提供了特征提取功能,可以从2D图像中检测和提取对象的特征。

7、对象检测 

objdetect和xobjdetect模块提供了对象检测功能,可在图像中检测给定图像的位置。

8、机器学习

ml模块提供了机器学习功能,包含了多种机器学习算法,如k近邻(k-Nearest Neighbors,kNN)、k均值聚类(k-Means Clustering)、支持向量机(Support Vector Machines,SVM)、神经网络(Neural Network)等。机器学习算法广泛应用于目标识别、图像分类、人脸检测、视觉搜索等。

9、深度学习

深度神经网络(Deep Neural Network,DNN)模块提供了深度学习功能。深度学习是机器学习中近几年来快速发展的一个子领域,广泛应用于语音识别、图像识别、自然语言处理、图像修复、人脸识别等。OpenCV的深度学习支持Caffe、TensorFlow、Torch、Darknet等著名的深度学习框架。

10、计算摄影。

计算摄影通过图像处理技术来改善相机拍摄的图像,如高动态范围成像、全景图像、图像补光等。photo和xphoto模块提供了与计算摄影有关的算法,stitching模块提供了全景图像算法。

11、形态分析

shape模块提供了形态分析功能,可以识别图像中对象的形状、分析形状之间的相似性、转换对象形状等。

12、人脸检测和识别 

OpenCV已在face模块中实现了人脸检测、人脸特征检测和人脸识别功能。人脸检测属于对象检测,用于找出图像中人脸的位置和尺寸。人脸特征检测属于特征检测,用于找出图像中人脸的主要特征。人脸识别属于对象识别,包括从已知人脸集合中找出与未知人脸最匹配的人脸,以及验证给定人脸是否为某个已知人脸。OpenCV实现了基于Haar级联分类器和基于深度学习的人脸检测算法,以及EigenFaces、FisherFaces和局部二进制编码直方图(Local Binary Patterns Histograms,LBPH)等人脸识别算法。

13、表面匹配

surface_matching模块提供了3D对象识别算法和3D特征的姿态估计算法,用于根据图像的深度和强度信息识别3D对象。

14、文本检测和识别

text模块提供了文本检测和识别功能,用于识别和检测图像中的文本,实现车牌识别、道路标志识别、内容数字化等相关应用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenCV基本介绍和安装 的相关文章

随机推荐

  • 局部路径规划算法——实现DWA(dynamic window approach)控制空间采样

    DWA算法是局部路径规划算法 xff0c 在全局路径规划算法完成后 xff0c DWA算法能够根据当前小车 xff08 机器人 xff09 位置 障碍物 终点的位置进行控制空间 xff08 速度 角速度 xff09 的采用 xff0c 从而
  • make和cmake简要介绍

    GCC GCC xff08 GNU Compiler Collection xff0c GNU编译器套件 xff09 是由GNU开发的编程语言译器 GNU编译器套件包括C C 43 43 Objective C Fortran Java A
  • 什么是小端模式,什么是大端模式

    字节序 前言 内存在读写数据的时候 xff0c 都是以字节为单位进行读写的 xff0c 其最小的读写单位也是字节 一个字节占8位 xff0c 如果暂且只考虑无符号数 xff0c 那么其能表示的范围只有0 255这256个整数数值 如果将一个
  • 多旋翼飞行器螺旋桨动力学模型

    1 多旋翼螺旋桨动力学模型 1 1 螺旋桨几何位置基本描述1 2 螺旋桨拉力及拉力力矩1 3 螺旋桨反扭力矩1 4 螺旋桨陀螺力矩1 5 螺旋桨动力学方程 1 多旋翼螺旋桨动力学模型 1 1 螺旋桨几何位置基本描述 坐标系分为多旋翼机体重心
  • 雷达天线孔径与分辨率

    我们现在讲一下真实孔径的问题 xff0c 我们先有一个 最小分辨角 的概念 xff0c 根据瑞丽 xff08 Rayleigh xff09 判据 xff0c 几何光学 xff0c 物体上的一个发光点经透镜成像后得到的应是一个几何像点 而由于
  • 【新手】关于ros包安装时,提示找不到相应的ros包(unable to locate package ros- **** )

    我是在学习这个大佬的教程 xff1a 从零开始的ROS学习之仿真 43 SLAM https blog csdn net u011612364 article details 122147741 xff08 引用 xff09 时发现我自己出
  • c++实现守护进程

    概述 Linux Daemon xff08 守护进程 xff09 是运行在后台的一种特殊进程 它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件 约束 守护进程一般在系统启动时开始运行 xff0c 除非强行终止 xff0c 否
  • linux C++ 环境下的ActiveMQ学习

    ActiveMQ 1 概述 ActiveMQ 是Apache出品 xff0c 最流行的 功能强大的即时通讯和集成模式的开源服务器 ActiveMQ 是一个完全支持JMS1 1和J2EE 1 4规范的 JMS Provider实现 提供客户端
  • Django与mysql建立长连接

    问题 xff1a 每次请求操作mysql数据库都会从新创建一个connect实例 xff0c 大大降低了数据处理的效率 还是django不够熟悉 解决办法 xff1a 自Django1 6版本后 xff0c 官方提供支持长连接 xff0c
  • Python ActiveMQ 消费者实现

    encoding utf 8 import stomp import sys import thread Create your tests here topic name 61 39 topic your topic name 39 br
  • Django 服务启动2次问题

    首先 xff0c 我们的操作如下 xff1a 一 命令行的启动服务 xff1a python manage py runserver 0 0 0 0 8000 二 服务启动行为 try os environ setdefault 34 DJ
  • Django settings.py配置总结

    1 版本 xff1a 1 8 9 2 解决数据库时间和当前系统时间不一致问题 设置USE TZ 61 False 3 时区配置 xff1a TIME ZONE 61 39 Asia Shanghai 39 4 静态文件js css等的引用路
  • Extern关键字在vscode中不生效的解决办法

    今天回顾extern关键字的时候遇到一个问题 a c里的代码 b c里的代码 这么简单的几个代码 vscode竟然给我报错 为什么 抱着这个问题去逛了下csdn 终于让我找到了问题所在 原来vscode默认只能对单文件编译 即使俩文件在同一
  • 头文件、源文件 及extern的使用

    头文件与源文件的作用 1 编译器的工作过程 简单的说其实要理解C文件与头文件 xff08 即 h xff09 有什么不同之处 xff0c 首先需要弄明白编译器的工作过程 xff0c 一般说来编译器会做以下几个过程 xff1a 1 预处理阶段
  • 从零开始的三维激光雷达SLAM教程第二讲(搭建Gazebo仿真环境,并添加动态障碍物)

    文章目录 引言第二节 xff1a 搭建仿真环境下载velodyne激光模拟功能包安装turtlebot3模拟器安装三维激光雷达到turtlebot3上构建Gazebo地图添加动态障碍物操作机器人建图最终效果 引言 毕业设计打算做三维激光SL
  • 一个简单的基础通信协议的设计与实现

    一个简单的基础通信协议的设计与实现 一种常见的通信协议格式搭建串口收发环境配置STM32CubeMX添加USART部分代码 通信协议的实现 不同设备之间的通信 xff0c 都需要设计自己的通信协议 为了保证设备与设备之间的数据的稳定传输 x
  • 串口调试助手之间通信和接受、发送数据

    最近在用串口调试助手的时候在网上找了好多资料和教程都没有一个完整的 xff0c 就来写个完整的串口调试助手资料给刚入门或者刚接触的小白 xff0c 希望有所帮助 xff01 1 准备好串口调试助手 和 虚拟串口驱动 软件VirtualSer
  • win10下vs2019编译使用boost库v1_75_0

    boost介绍 Boost库是为C 43 43 语言标准库提供扩展的一些C 43 43 程序库的总称 boost是一个准标准库 xff0c 相当于STL的延续和扩充 xff0c 它的设计理念和STL比较接近 xff0c 都是利用泛型让复用达
  • vscode格式化C++代码方法

    参考 xff1a https blog csdn net wydxry article details 125191171 格式操作 解决方法 xff1a 按下组合键ctrl 43 shift 43 p 在弹出的搜索窗口中输入format
  • OpenCV基本介绍和安装

    OpenCV是一个通用 开源 功能强大的图像处理和计算机视觉库 官方网站 xff1a Home OpenCV 1999年 加里 布拉德斯基在Intel公司创建了计算机视觉库 xff08 Computer Vision Library xff