Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenCV 2.4.11和3.0.0之间有什么区别_Opencv_Opencv3.0 - Fatal编程技术网

OpenCV 2.4.11和3.0.0之间有什么区别

OpenCV 2.4.11和3.0.0之间有什么区别,opencv,opencv3.0,Opencv,Opencv3.0,最新发布的OpenCV显示了2.4.112015年2月,这比Beta版的3.0.0更新。他们之间有什么区别。我是否应该使用OpenCV 2.4.11而不是3.0.0,因为我在3.0.0中遇到了一些错误。他们的发行版是如何工作的?3.0.0应该会带来很多新功能,但它目前是测试版,不是官方发行版(可能不稳定)。上一个官方稳定版本是2.4.11 如果您有2.4.11中没有检索到的功能,或者您喜欢冒险,请使用3.0.0(3.0.0beta版非常好,最终版本应该很快就会发布)。如果您不想增加安全性,请使用

最新发布的OpenCV显示了2.4.112015年2月,这比Beta版的3.0.0更新。他们之间有什么区别。我是否应该使用OpenCV 2.4.11而不是3.0.0,因为我在3.0.0中遇到了一些错误。他们的发行版是如何工作的?

3.0.0应该会带来很多新功能,但它目前是测试版,不是官方发行版(可能不稳定)。上一个官方稳定版本是2.4.11


如果您有2.4.11中没有检索到的功能,或者您喜欢冒险,请使用3.0.0(3.0.0beta版非常好,最终版本应该很快就会发布)。如果您不想增加安全性,请使用2.4.11。

尽管OpenCV 3.0中有新功能(如文本检测、KAZE检测器),但对于大多数开发人员来说,这种比较与功能无关。它是关于速度的。除非您立即投入生产,否则我建议您使用OpenCV 3.0。而且,这远非冒险

  • 关键区别在于OpenCV 3.0中的透明API。几乎所有OpenCV 3.0方法都是OpenCL加速的。因此,所有的方法都可以在GPU上运行,这将使性能从10%提高到230%。您的代码中唯一需要更改的是使用
    UMat
    ,您以前使用
    Mat
    。示例()。如果在OpenCV 2.4.*中需要这种性能,则必须显式调用
    cv::ocl::*
    cv::gpu::*
    方法
  • 如果您碰巧是一名Java开发人员,那就更好了。早期不可用的类/方法的Java包装器现在在OpenCV 3.0中提供(请参阅广泛使用的KalmanFilter)
  • 有一些变化,比如内部模块重组,它来自 从开发人员的角度来看,这是次要的,因为这可以通过 更改代码中的OpenCV头
  • 关于发布周期,对OpenCV github repo()的快速观察表明,pull请求主要进入OpenCV 3.0的主分支。所以我假设,主要的bug修复可以后移植到2.4.*分支


    有关更多信息,请阅读()和()。关于您在3.0 beta版中遇到的bug,如果您能在OpenCV issues page()上用最少的完整运行示例来提出它们,这可能会有所帮助。

    除了上面提供的答案之外,另一个重要的区别是SIFT/SURF功能检测已从默认的OpenCV 3.0包中删除。 由于它们获得了专利,openCV将“非免费”算法转移到了另一个包中:

    opencv_contrib
    

    您能否列出3.0.0中附加的一些功能?为什么他们使用版本控制为3.0.0而不是说2.4.12 beta版?3.0.0将不能完全向后兼容2.4.x版。除此之外,许多类已经被完全重写,并强调了GPU加速功能。添加了许多新模块,您可以看到一系列更改。它们还为集成极具破坏性的技术带来了挑战:@TomA:Wow!那太好了。我希望这最终会在即将发布的版本中集成一些质量最好的算法。@NicholasBetsworth关于向后兼容性的评论似乎令人困惑。除非我们使用更新的功能,如UMat,否则3.0代码应该在2.4中运行,并进行最小的更改,如包括头、枚举、名称空间。您是否知道OpenCV 3.x的Java绑定是否支持OpenCL/CUDA?Java绑定只是JNI包装器。所以他们应该支持。谢谢你指出这一点!OpenCV的新手应该知道,安装“contrib”版本很简单,所以在实践中,这不是什么大问题。2021更新:使用3.x: