python - 为什么 OpenCV 在浮点数上比 Numpy 快这么多?
问题描述
首先,一个例子:
In[1]: import numpy as np
...: import cv2
...: arr = np.random.rand(2000, 2000, 3).astype(np.float32)
In[2]: %timeit cv2.cvtColor(arr, cv2.COLOR_RGB2HSV)
13.1 ms ± 758 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
In[3]: %timeit arr*2
13.8 ms ± 172 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
出于某种原因,numpy 中这个简单的操作比执行颜色模型的完全转换需要更长的时间。我希望使用 OpenCV 进行实时图像分析来完成大部分繁重的工作并使用 Numpy 执行一些粘合操作,但鉴于此,Numpy 似乎会以某种方式消耗大部分处理时间。是否有一个原因?有没有办法加速 Numpy 使其与 OpenCV 相提并论?有没有办法使用 OpenCV 为一般数组操作提供的任何加速?
解决方案
推荐阅读
- java - JSP:setProperty 将值设置为变量
- html - HTML 样式启动功能在 IE 中不适用
- c - 如何使用 C 中的格式字符串攻击获取全局变量的内存地址?
- vue.js - 如何在 vuejs 中检测 ctrl + z 和 ctrl + y?
- php - php 在 Mac 上接收空的 HTML 表单
- python - 如何将元组括在引号中以将其用作函数中的字符串参数?
- wordpress - 公司网站 + 客户区 + 私人页面 + 登录时切换下拉菜单
- loops - HandleBars - 每个循环 - 一次显示四个
- amazon-web-services - AWS VPC 中的服务链:IDS -> 防火墙 -> 服务器
- amazon-web-services - 如何防止开发者下载 lambda 函数?