OpenCV与Open3D等开源视觉库的详细笔记
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/ZhangRelay/article/details/103226687
开源视觉库,从 二维(2D) 逐步发展到 三维(3D) 并已经日益成熟。OpenCV版本为4.1.2+,Open3D版本为0.8+。
OpenCV:
OpenCV(开源计算机视觉库)是一个开源计算机视觉和机器学习软件库。OpenCV的构建旨在为计算机视觉应用程序提供通用的基础结构,并加速在商业产品中使用机器感知。作为BSD许可的产品,OpenCV使企业可以轻松地使用和修改代码。
该库具有2500多种优化算法,其中包括一整套经典和最新的计算机视觉和机器学习算法。这些算法可用于检测和识别人脸,识别物体,对视频中的人类动作进行分类,跟踪相机运动,跟踪运动物体,提取物体的3D模型,从立体相机产生3D点云,将图像缝合在一起以产生高分辨率整个场景的图像,从图像 数据库 中查找相似的图像,从使用闪光灯拍摄的图像中消除红眼,跟随眼睛的运动,识别风景并建立标记以将其与增强现实叠加在一起等。OpenCV拥有超过4.7万人的用户社区,下载量估计超过1800万。该库在公司,研究小组和政府机构中得到广泛使用。
除了使用该库的Google,Yahoo,Microsoft,Intel,IBM,Sony,Honda,Toyota之类的知名公司外,还有许多新兴公司(例如Applied Minds,VideoSurf和Zeitera)广泛使用OpenCV。OpenCV的部署用途包括将街景图像拼接在一起,检测以色列监视视频中的入侵,监视中国的矿山设备,帮助机器人导航和拾取Willow Garage的物体,检测欧洲游泳池溺水事故,在西班牙和纽约,在土耳其检查跑道上的碎屑,检查世界各地工厂产品上的标签,然后在日本进行快速面部识别。
它具有 C ++,Python,Java和MATLAB 接口,并支持 Windows,Linux,Arduino和Mac OS 。OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令。 目前正在积极开发功能齐全的CUDA和OpenCL接口。有500多种算法,而构成或支持这些算法的功能大约是其10倍。OpenCV用C ++原生编写,并具有可与STL 容器 无缝配合的模板化接口。
- OpenCL:开放计算语言(OpenCL)是一种开放标准,用于编写跨异构平台(包括CPU,GPU,DSP等)运行的代码。特别是,OpenCL为应用程序提供对GPU的访问,以用于非图形计算(GPGPU),在某些情况下会导致大大加快了速度。在计算机视觉中,许多算法可以在GPU上比在CPU上更有效地运行:例如 图像处理 ,矩阵算术,计算摄影,对象检测等。
- OpenGL:OpenGL是开发便携式,交互式2D和3D图形应用程序的主要环境。自1992年问世以来,OpenGL已成为业界使用最广泛且受支持最多的2D和3D图形应用程序编程接口(API),将成千上万的应用程序带入各种计算机平台。OpenGL通过合并大量的渲染,纹理映射,特殊效果和其他强大的可视化功能来促进创新并加快应用程序开发。开发人员可以在所有流行的台式机和工作站平台上利用OpenGL的功能,从而确保广泛的应用程序部署。
Open3D:
Open3D是一个开放源代码库,支持快速开发处理3D数据的软件。Open3D前端在C++和Python中公开了一组精心选择的数据结构和算法。后端经过高度优化,并设置为并行化。
介绍
Open3D是一个开放源代码库,支持快速开发处理3D数据的软件。Open3D前端在C ++和Python中公开了一组精心选择的数据结构和算法。后端经过高度优化,并设置为并行化。Open3D是从一开始就开发出来的,带有很少的,经过仔细考虑的依赖项。它可以在不同的平台上设置,并且可以从源代码进行最小的编译。代码干净,样式一致,并通过清晰的代码审查机制进行维护。Open3D已用于许多已发布的研究项目中,并已积极部署在云中。我们欢迎开源社区的贡献。
核心功能
- 基本的3D数据结构
- 基本的3D数据处理算法
- 场景重建
- 表面对齐
- 3D可视化
- Python绑定
支持的编译器
- Linux上的GCC 4.8及更高版本
- OS X上的XCode 8.0及更高版本
- Windows上的Visual Studio 2015及更高版本
PCL:The P oint C loud L ibrary(或 PCL )是 大型的,开放项目 用于2D / 3D图像和点云的处理。PCL框架包含众多最新算法,包括滤波,特征估计,表面重建,配准,模型拟合和分段。这些算法可用于,例如,从嘈杂的数据中过滤离群值,将3D点云缝合在一起,分割场景的相关部分,提取关键点并计算描述符以根据物体的几何外观识别世界上的物体,并从中创建表面点云并将其可视化
计算机视觉库
OpenCV
早年也是
Intel
开源的,在
Intel
公司的支持下,
Open3D
将
会像
OpenCV一样成为三维开源视觉SDK标杆。
从源码编译安装,但是相对复杂一些, 特别注意 :如果系统之前已经安装了ROS,安装 Open3D 的源码编译依赖时会卸载掉ROS,所以还是推荐第一种安装方式。除非系统非常干净,因为系统装的东西太多的话,安装包冲突会很麻烦。
Open3D: A Modern Library for 3D Data Processing
- 用于3D数据处理的现代库
- About Open3D 关于
- Getting Started 入门
- Compiling from source 源码编译
- Building Documentation 编译文档
- Contributing to Open3D 贡献
Tutorial 教程
Python API
- OpenCV:
- Open3D:
- 介绍
- 核心功能
- 支持的编译器
- Open3D: A Modern Library for 3D Data Processing