栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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 inC++]/minimum time taken in C++
) 。

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

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

要记住的是,始终尝试避免Python中的循环和迭代。而是使用Numpy(和OpenCV)中可用的数组操作工具。使用简单地添加两个numpy数组

C =A+B
要比使用双循环快很多倍。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/637036.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号