python - 在 Windows 上通过 GPU 使用 OpenCV 和 Python 的可行性
问题描述
我必须读取来自相机的图像,使用 OpenCV 添加一些形状,然后使用 Flask 将图像返回到网页。此应用程序在 Windows 10 中运行。详细步骤如下:
- 从相机读取图像就完成了。我有一个似乎运行良好的 C++ 库的 Python 包装器。
- 使用 OpenCV 添加形状就完成了。我使用 Python 的 OpenCV 包装器。
- 问题是用 Flask 返回图像。为此,我需要使用
cv2.imencode
(OpenCV Python 包装器)将图像从原始格式转换为 JPG 或 PNG 格式。然而,这会减慢要在网站上显示的视频的帧速率。
我在某些地方看到,OpenCV 可用于在 GPU(Nvidia GeForce RTX)上执行一些操作。cv2.UMat
我在打电话之前试过了,cv2.imencode
但没有区别。
这是我的问题:
- 我应该尝试使用更多 Python 包装器(如此处所述)吗?
- 我应该开始学习 C++ 吗?我需要将所有现有应用程序从 Python 迁移到 C++ 还是只是一个包装器?这可以在几行中完成吗?
解决方案
我终于用 GPU 标志和所需的 CUDA 标志编译了OpenCV-python 。我花了几个星期来安装所有需要的依赖项(图像库、视频库、Fortran、LINPAK、BLAS...)。
结果是调用cv2.imencode
速度更快,我可以在 Windows 的资源管理器中看到 GPU 消耗增加。
推荐阅读
- pymc3 - 如何区分 PyMC3 中的先验和可能性
- r - 绘制图例并获取:strwidth 中的错误(legend,units = “user”,cex = cex,font = text.font):尚未调用 plot.new
- intellij-idea - PyCharm 字体样式错误?
- python - 如何正确获取装饰器的默认关键字参数?
- javascript - getParameter 返回 NULL 并且 getPart 无法识别,请求不包含 multipart/form-data 或 multipart/mixed 流
- amazon-s3 - 如何赋予目标存储桶日志传递组 WRITE 和 READ_ACP 权限?
- amazon-web-services - AWS EC2 c5.2x 是来自大型 CPU 的共享 CPU 吗?
- r - R,dplyr:构建每列一个非零元素的集合
- c# - 在 Winform 中嵌入 Selenium 启动的 chrome 浏览器
- amazon-web-services - AWS Powershell - 获取 EBS 读取 IOPS 的 CWMetricStatistics