c++ - OpenCV CUDA 函数缺失 - 命名空间 "cv:cuda"没有成员 "resize"

标签 c++ opencv visual-c++

我正在尝试将 OpenCV 4.1 与 CUDA 10 结合使用来调整大量大型 tif 堆栈的大小,但 VS2017 看不到函数 resize在图书馆。它对 cv::cuda 的一个子集很满意库,但看不到此处列出的所有函数:https://docs.opencv.org/4.1.0/d1/d1a/namespacecv_1_1cuda.html

我包括 #include <opencv2/opencv.hpp> , Intellisense 向我显示了 cuda:: 的自动完成的 PtrSz, registerPageLocked, resetDevice, setBufferPoolConfig ,但没有调整大小...?

我改编了旧的 OpenCV 3(?ish;此处 https://www.opencv-srf.com/p/introduction.html)在线教程来设置我的 VS 项目:

  1. 创建了指向 OpenCV 构建文件夹的系统级环境变量 $(OPENCV_DIR)
  2. 在我添加的项目属性中:
    • 所有配置:
    • C/C++ -> 常规 -> 附加包含目录 $(OPENCV_DIR)\include
    • 链接器 -> 常规 -> 附加库目录 $(OPENCV_DIR)\x64\vc15\lib 在这里和下面,我更改了 vc## 文件夹以反射(reflect)我使用的是 VS2017
    • 调试 -> 环境 PATH=$(OPENCV_DIR)\x64\vc15\bin;%PATH%
    • 在配置管理器中...
    • 将事件解决方案平台设置为 x64
    • 调试:
    • 链接器 -> 输入 -> 附加依赖项 opencv_world410d.lib
    • 发布:
    • 链接器 -> 输入 -> 附加依赖项 opencv_world410.lib

如果我尝试使用 cv::cuda::resize(...) 进行编译我得到 namespace "cv::cuda" has not member "resize" 的编译错误.相反,如果我尝试使用它在该 namespace 中看到的功能之一,例如std::cout << "CUDA device count: " << cuda::getCudaEnabledDeviceCount();它输出 CUDA device count: 0并尝试类似 std::cout << "CUDA device: " << cuda::getDevice(); 的东西给出以下错误: OpenCV(4.1.0) Error: No CUDA support (The library is compiled without CUDA support) in throw_no_cuda, file c:\build\master_winpack-build-win64-vc15\opencv\modules\core\include\opencv2\core\private.cuda.hpp, line 107

我很困惑,首先,为什么它只看到 cv::cuda 命名空间中可用函数的一个子集,其次,为什么我没有 CUDA 支持? 我需要先在我的机器上编译 OpenCV 吗?

最佳答案

确保包含正确的头文件。在你的情况下 cudawarping.hpp 应该是正确的。您很可能也喜欢做一些矩阵运算,因此您需要包含 cudaarithm.hpp

#include <opencv2/cudaarithm.hpp>
#include "opencv2/cudawarping.hpp"

这是调整大小的 api 文档:Documentation

希望对你有帮助

关于c++ - OpenCV CUDA 函数缺失 - 命名空间 "cv:cuda"没有成员 "resize",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55891952/

相关文章:

C++程序深奥地卡住

c++ - 在 Android NDK 项目中包含 ICU

c++ - 多集上的 std::transform 给我错误 C3892

c++ - 缓存 std::vector 的大小是否更快

android - 如何通过不处理每一帧来提高 fps 来有效地使用 onCameraFrame 函数

opencv - 将视频从 Raspberry pi 流式传输到远程计算机上的 Opencv 应用程序

c++ - Linux 和 Windows 构建的应用程序之间的 OpenCV 行为差异

python-2.7 - Python 2.7 通过pip(虚拟环境)安装opencv

windows - 如果我已经安装了 Microsoft VC++ 2017 运行时,是否还需要安装 Microsoft VC++ 2015 运行时可再发行组件?

visual-c++ - 桌面复制 (DirectX) 屏幕捕获无法提供屏幕更新