opencv python c++区别_Python或OpenCV的C++编码性能有什么不同吗?

所有openCV的google结果都是一样的:python只会稍微慢一点。但我从来没有看到任何关于这方面的描述。所以我决定做点什么,发现:

Python比OpenCV明显慢C++,即使对于平凡的程序也是如此。>/P>

我能想到的最简单的例子是在屏幕上显示网络摄像头的输出并显示每秒帧数。使用python,我获得了50FPS(在Intel atom上)。用C++,我得到了65 fPS,增加了25%。在这两种情况下,CPU的使用都是使用一个内核,据我所知,CPU的性能决定了CPU的使用。

另外,这个关于的测试用例与我在过去从一个移植到另一个的项目中看到的一致。

这一区别从何而来?在python中,所有openCV函数都返回图像矩阵的新副本。无论何时捕获图像,或是在C++中调整大小,都可以重用现有内存。在python中不能。我怀疑这次分配内存的时间是主要的区别,因为正如其他人所说的:OpenCV的底层代码是C++。

在将python抛出窗口之前:python的开发速度要快得多,如果您没有遇到硬件限制,或者如果开发速度比性能更重要,那么使用python。在我使用OpenCV的许多应用程序中,我已经在Python中开始,后来只将计算机视觉组件转换为C++(例如使用Python的cType模块并将CV代码编译成共享库)。

Python代码:import cv2

import time

FPS_SMOOTHING = 0.9

cap = cv2.VideoCapture(2)

fps = 0.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值