OpenCV各版本差异

Opencv2标志着opencv革命性的改变,Opencv2带来了全新的C++接口,将Opencv的能力无限放大。在2.0时代,opencv增加了新的平台支持,包括iOS和Android,通过CUDA和openGL实现了GPU加速,为Python和Java用户提供了接口。

Opencv 3改变了项目架构的方式,3.0版本不会像2.0版本一样激进的尝试,只会有足够稳定的改进。项目架构的改变是Opencv 3最为重大的革新之处。2.0版本是各个模块都是以整体的形式构建然后组合在一起的。然而,随着功能的增加,opencv主体集成了各种各样的功能模块,变得越来越臃肿。而3.0版本就是为了给日益发福的opencv减肥,因为Opencv3决定向其他大项目一样,抛弃整体架构,使用内核+插件的架构形式。

在GitHub中,除了存放着正式版本的opencv的主仓库和新增加的”opencv_extra”仓库以外,opencv3中还添加了一个名为”opencv_contrib”的全新仓库,该仓库包括很多让人兴奋的功能:脸部识别,文本探测,文本识别,新的边缘检测器,充满艺术感的图像修复,深度地图处理,新的光流和追踪算法等。

opencv_contrib仓库是大多数实验性代码放置的地方,一些API可能会有改变,这些额外模块可以在CMake中用OPENCV_EXTRA_MODULES_PATH=/modules传递给CMake文件。

OpenCV 1.x

OpenCV 最初基于C语言开发,API也都是基于C的,面临内存管理、指针等C语言固有的麻烦。

2006年10月1.0发布时,部分使用了C++,同时支持Python,其中已经有了random trees、boosted trees、neural nets等机器学习方法,完善对图形界面的支持。

2008年10月1.1pre1发布,使用 VS2005构建,Python bindings支持Python 2.6,Linux下支持Octave bindings,在这一版本中加入了SURF、RANSAC、Fast approximate nearest neighbor search等,Face Detection (cvHaarDetectObjects)也变得更快。

OpenCV 2.x

当C++流行起来,OpenCV 2.x发布,其尽量使用C++而不是C,但是为了向前兼容,仍保留了对C API的支持。从2010年开始,2.x决定不再频繁支持和更新C API,而是focus在C++ API,C API仅作备份。

2009年9月2.0 beta发布,主要使用CMake构建,加入了很多新特征、描述子等,如FAST、LBP等。

2010年4月2.1版本,加入了Grabcut等,可以使用SSE/SSE2…指令集。

2010年10月2.2版本发布,OpenCV的模块变成了大家熟悉的模样,像opencv_imgproc、opencv_features2d等,同时有了opencv_contrib用于放置尚未成熟的代码,opencv_gpu放置使用CUDA加速的OpenCV函数。

2011年6月起的2.3.x版本、2012年4月起的2.4.x版本,一面增加新方法,一面修复bug,同时加强对GPU、Java for Android、 OpenCL、并行化的支持等等,OpenCV愈加稳定完善,值得注意的是 SIFT和SURF从2.4开始被放到了nonfree 模块(因为专利)。

考虑到过渡,OpenCV 2.4.x仍在维护,不过以后可能仅做bug修复和效率提升,不再增加新功能——鼓励向3.x迁移。

OpenCV 3.x

随着3.x的发布,1.x的C API将被淘汰不再被支持,以后C API可能通过C++源代码自动生成。3.x与2.x不完全兼容,与2.x相比,主要的不同之处在于OpenCV 3.x 的大部分方法都使用了OpenCL加速。

2014年8月3.0 alpha发布,除大部分方法都使用OpenCL加速外,3.x默认包含以及使用IPP,同时,matlab bindings、Face Recognition、SIFT、SURF、 text detector、motion templates & simple flow 等都移到了opencv_contrib下(opencv_contrib不仅存放了尚未稳定的代码,同时也存放了涉及专利保护的技术实现),大量涌现的新方法也包含在其中。

2017年8月3.3版本,2017年12月开始的3.4.x版本,opencv_dnn从opencv_contrib移至opencv,同时OpenCV开始支持C++ 11构建,之后明显感到对神经网络的支持在加强,opencv_dnn被持续改进和扩充。

OpenCV 4.0

2018年10月4.0.0发布,OpenCV开始需要支持C++11的编译器才能编译,同时对几百个基础函数使用 “wide universal intrinsics”重写,这些内联函数可以根据目标平台和编译选项映射为SSE2、 SSE4、 AVX2、NEON 或者 VSX 内联函数,获得性能提升。此外,还加入了QR code的检测和识别,以及Kinect Fusion algorithm,DNN也在持续改善和扩充。

参考https://www.cnblogs.com/shine-lee/p/9884551.html

Original: https://blog.csdn.net/weixin_46195203/article/details/116990969
Author: Wildcraner
Title: OpenCV各版本差异

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/702863/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • dataframe小技巧

    一.基本操作篇 1.新建自己定义column_name: import pandas as pd df = pd.DataFrame(columns=[‘col1′,’col2’,…

    人工智能 2023年7月6日
    080
  • pandas基础_1

    数据使用泰坦尼克数据 基本操作 读取训练集数据 df = pd.read_csv(‘train.csv’) 常用的基本信息查询 df.head() #默&am…

    人工智能 2023年7月17日
    073
  • Pytorch中的register_buffer()

    回顾模型保存:torch.save(model.state_dict()),model.state_dict()是一个字典,里边存着我们模型各个部分的参数。在model中,我们需要…

    人工智能 2023年7月21日
    062
  • .Net学习——Nlog日志框架的使用

    .Net没有内置的文本日志提供者,对于实际需要记录日志到文本文件中的需求不相匹配,常用的第三方日志框架包括Log4Net,Nlog,SeriLog。考虑到系统的兼容性与使用的简易程…

    人工智能 2023年6月29日
    095
  • 数字验证码识别

    1 程序整体功能及模块介绍 本设计为基于 MATLAB 的数字验证码识别,通过一个 GUI 界面来进行实时交互。可以识别带有噪声的数字验证码。流程为:打开图像文件,显示图片,用颜色…

    人工智能 2023年7月12日
    0108
  • Python 基础知识记录

    一、两个list第一个列表排序后,第二个列表根据第一个列表索引进行排序。 x = [2,1,4,5,6,0] y = [‘a’,’b’,’c’,’d’,’e’,’f’] x_sor…

    人工智能 2023年7月8日
    086
  • Global Tracking Transformers 详细解读

    文章目录 介绍 Preliminarie Global tracking transformers * 4.1 Tracking transformers 4.2 训练 4.3 O…

    人工智能 2023年7月13日
    064
  • 最新版傻妞及Web安装教程-2022.11.6

    [/ * @description 获取每日一言并发送到消息。如果是定时任务则推送到指定群组。需配合任务计划使用。版本号:v1..2。作者:猫咪。来源: _傻妞_官方。 * @au…

    人工智能 2023年6月27日
    086
  • conda安装pytorch

    1、卸载虚拟环境 conda uninstall -n novelgnn –all 2、conda安装虚拟环境 conda create -n Novelgnn python=3…

    人工智能 2023年7月21日
    051
  • python 包之 Pillow 图像处理教程

    一、安装 被认为是python官方图像处理库 PIL非常适合于图像归档以及图像的批处理任务。可以使用PIL创建缩略图,转换图像格式,打印图像等等 PIL支持众多的GUI框架接口,可…

    人工智能 2023年6月11日
    060
  • OpenCV图像处理学习二十一,直方图比较方法

    一.直方图比较 直方图比较是对输入的两张图像进行计算得到直方图H1与H2,归一化到相同的尺度空间,然后可以通过计算H1与H2的之间的距离得到两个直方图的相似程度(每张图像都有唯一的…

    人工智能 2023年6月20日
    072
  • 【书籍】《Pytorch深度学习》——实现第一个神经网络

    文章目录 准备数据 为神经网络创建数据 * 创建学习参数 神经网络模型 网络的实现 损失函数 优化神经网络 加载数据 * Dataset类 DataLoader类 Pytorch …

    人工智能 2023年7月14日
    072
  • 音乐音频 | 语音识别与音乐流派分类

    文章目录 语音识别步骤 一、用SVM做音乐分类应用实例 * 1、数据集:EchoNest。 2、代码: – ①数据归一化。沿着最大方差轴旋转数据,确定数据的每个特征 对…

    人工智能 2023年5月25日
    093
  • 卷积神经网络——ResNet论文翻译

    论文地址:https://arxiv.org/pdf/1512.03385.pdf Deep Residual Learning for Image Recognition Abs…

    人工智能 2023年7月14日
    050
  • 技术分享 | 客户说 insert 慢,我该怎么办

    作者:张昊DBA,主要负责MySQL故障处理、DMP产品支持,擅长MySQL,喜欢打球,唱歌~。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编…

    人工智能 2023年5月30日
    057
  • 遗传算法的神经网络python实现源码

    代码过程中,把代码过程较好的一些代码段记录起来,下边代码是关于遗传算法的神经网络python实现的代码,应该对大伙有一些用处。 from operator import itemg…

    人工智能 2023年5月25日
    089
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球