美文网首页
OpenCV3与OpenCV2的改动

OpenCV3与OpenCV2的改动

作者: 小狼主 | 来源:发表于2017-11-21 23:53 被阅读0次

    总结:除opencv3不自带sift,fast,surf等算法,需要额外安装。极少数方法与OpenCV2不一样,资料较少以外,OpenCV3还有以下主要优点,建议使用OpenCV3.3.1


    C风格的API消失,完全被C++的API替代,代码更加简洁、不易出错。读者如果想借助opencv最新的功能,记得清理代码中的C风格API。

    C++API将更加简洁。

    所有的算法都将继承自cv::Algorithm接口。

    大型的模块将拆分为小模块,模块将在后面继续讲解

    opencv3并不自带sift,fast等,需要额外安装。

    drawMatches这个函数在OpenCV2.4.12中不存在。3.0以后才提供。所以运行时得到这样的报错。

    更多的硬件加速,Neon、OpenCL、CUDA

    OpenCV3开始图片、视频编解码从highgui模块分离出来,组成了imgcodecs和videoio

    增加Drawing Functions绘画的功能

    增加更多功能


    OpenCV升级日志:https://github.com/opencv/opencv/wiki/ChangeLogOpenCV 3.3加速了dnn模块,搬到了主存储库,在OpenCV中首次出现Halide,多次优化和其他改进已经发布。

    opencv_dnn模块已经从贡献库(opencv_contrib)移动到主要的资源库(opencv),并且有了明显的改进:

    高级API已经被修改,现在更加方便。

    回归测试已经扩大,新增了一些测试。现在有46个。

    Torch和TF装载机以及一些处理层已经修复了许多bug。现在我们检查一组网络中OpenCV DNN匹配的结果,还是非常接近原始框架的结果。我们还检查在这些网络的论文中声称的结果是否可以通过OpenCV DNN实现。

    性能得到了显着改善。使用AVX,AVX2,SSE和NEON,已经实现了层融合,并对一些性能关键层进行了优化。不再需要外部BLAS(OpenBLAS,MKL,ATLAS)。

    新增了C++和Python中的示例

    可选的Halide后端已被添加。当GPU足够快时,它可以加速GPU上的OpenCV DNN。

    有关该模块的详细信息,请参阅OpenCV中的深度学习

    从2015.12到2017.2版本升级的IPPICV将核心和imgproc模块的速度提高了〜15%(在相应的性能测试中测量为几何平均值)。

    SSE4.2/AVX/AVX2代码的动态调度已经实现。之前,OpenCV必须使用SSE4.x/AVX/AVX2打开才能使用这种优化,并使其与旧硬件不兼容。现在,OpenCV二进制文件会自动适应真实的硬件,如果可用的话可以使用新的指令,同时保持与旧硬件的兼容性。OpenCV中所有现有的AVX/AVX2优化都被重构为使用这种技术。DNN的AVX加速也使用动态调度。

    OpenCV现在可以配置和构建为C++11库。传递-DENABLE_CXX11=ON给CMake。在最新的Fedora等一些现代Linux发行版中,它默认是启用的。

    添加了C++11用户的新功能:

    硬件加速视频编码/使用英特尔的GPU通过英特尔媒体SDK解码支持已实施了Linux操作系统(在后端为形式cv::VideoCapture和cv::VideoWriter)。

    支持原始H.264和MPEG1/2视频流的编码和解码,还不支持媒体容器。


    在OpenCV 3.0中有新的功能(比如文本检测,KAZE检测器),但是对于大多数开发人员来说,更重要的是关于速度的提升。我建议你使用OpenCV 3.0,而且,这远非冒险。

    关键的区别是OpenCV 3.0中可读性好的的API。几乎所有的OpenCV 3.0方法都是OpenCL加速的。所以,所有的方法都可以在GPU上运行,这可能导致性能从10%提高到230。如果您在OpenCV 2.4。*中需要这种性能,则必须明确调用cv::ocl::*或cv::gpu::*方法。

    如果你碰巧是一个Java开发人员,那就更好了。目前OpenCV 3.0中提供了以前不可用的类/方法的Java包装(请参阅广泛使用的KalmanFilter)

    从开发人员的角度来看,内部模块重构的变化很小,因为可以通过更改代码中的OpenCV头来解决这个问题。


    下面是来自知乎的回答

    知乎回答:

    作者:应澜链接:https://www.zhihu.com/question/31660075/answer/52852066

    相关文章

      网友评论

          本文标题:OpenCV3与OpenCV2的改动

          本文链接:https://www.haomeiwen.com/subject/ydigvxtx.html