我正在尝试使用OpenCV 4.1和CUDA 10来调整大量大型TIF堆栈的大小,但是VS2017在库中没有看到
我改编了旧的OpenCV 3(?ish;在这里https://www.opencv-srf.com/p/introduction.html)在线教程来设置我的VS项目:
1. 创建一个指向OpenCV构建文件夹的系统级环境变量$(OPENCV_DIR); 2. 在项目属性中添加: - 所有配置: - C/C++ -> 常规 -> 附加包含目录
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
,但没有resize……?我改编了旧的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##文件夹,以反映我使用的是VS2017)
- 调试 -> 环境 PATH=$(OPENCV_DIR)\x64\vc15\bin;%PATH%
- 在“配置管理器”中:
- 将活动解决方案平台设置为x64
- 调试:
- 链接器 -> 输入 -> 附加依赖项 opencv_world410d.lib
- 发行:
- 链接器 -> 输入 -> 附加依赖项 opencv_world410.lib
如果我尝试使用cv::cuda::resize(...)
编译,则会出现编译错误namespace "cv::cuda" 没有成员 "resize"
。相反,如果我尝试使用该命名空间中看到的一个函数,例如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吗?