您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

OpenCV的Python或C ++编码之间的性能是否有所不同?

OpenCV的Python或C ++编码之间的性能是否有所不同?

如先前的回答所述,Python比C ++或C慢。Python的构建是因为其简单性,可移植性以及创造力,用户只需担心他们的算法,而不必担心编程问题。

但是在OpenCV中,这里有所不同。Python-OpenCV只是原始C / C 代码的包装。它通常用于结合两种语言的最佳 功能,即 **C / C 性能和Python的简单性** 。

因此,当您从Python调用OpenCV中的函数时,实际运行的是底层C / C ++源代码。因此,性能不会有太大区别。(我记得我在某处读到性能损失小于1%,不记得在哪里。OpenCV中一些基本功能的粗略估计显示 损失为<4%.ie penalty = [maximum time taken in Python - minimum time taken in C++]/minimum time taken in C++) 。

当您的代码具有大量本地py??thon代码时,就会出现问题。例如,如果您要编写自己的函数,而这些函数在OpenCV中不可用,那么情况会变得更糟。这些代码在Python中本地运行,从而大大降低了性能

但是新的OpenCV- Python接口完全支持Numpy。Numpy是使用Python进行科学计算的软件包。它也是本机C代码的包装。它是一个高度优化的库,支持多种矩阵运算,非常适合图像处理。因此,如果您可以正确组合OpenCV函数和Numpy函数,则将获得非常高速的代码

要记住的是,始终尝试避免Python中的循环和迭代。而是使用Numpy(和OpenCV)中可用的数组操作工具。使用简单地添加两个numpy数组C = A+B要比使用双循环快很多倍。

python 2022/1/1 18:48:31 有351人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶