【发布时间】:2017-07-20 21:06:09
【问题描述】:
这是我第一次使用 CUDA 运行 OpenCV3.0。问题是如果我在 opencv 源文件夹中运行示例代码(例如 test_features2d.cpp),我可以从 CUDA 函数中获得结果。但是,如果我创建一个独立程序并使用 CUDA 代码,它会发出运行时错误(它没有编译器错误): (我确实使用了 GPUMAT !!)
OpenCV 错误:功能/特性未实现(getGpuMat 是 仅适用于中心代码 hereuda::GpuMat 和 cuda::HostMem) 获取 GpuMat,文件 /home/lixx2938/opencv-3.0.0/modules/core/src/matrix.cpp,第 1433 行 在抛出“cv::Exception”实例后调用终止
什么():/home/lixx2938/opencv-3.0.0/modules/core/src/matrix.cpp:1433: 错误:(-213) getGpuMat 仅适用于 cuda::GpuMat 和 函数 getGpuMat 中的 cuda::HostMem
这是我主要功能的琐碎部分:
cv::Ptr<cv::cuda::ORB> orb = cv::cuda::ORB::create(200, 1.2, 4, 31, 0, 2, ORB::HARRIS_SCORE, 31, 20, true);
cv::Ptr<cv::cuda::FastFeatureDetector> fast = cv::cuda::FastFeatureDetector::create(threshold, nonmaxSuppression);
std::vector<cv::KeyPoint> fastkeypoints;
fast->detect(image, fastkeypoints);
std::vector<cv::KeyPoint> keypoints_cuda;
cv::cuda::GpuMat descriptors_cuda;
orb->detectAndCompute(image, noArray(), keypoints_cuda, descriptors2_gpu);
这是我的 cmake 文件
cmake_minimum_required(VERSION 2.8)
project( test )
find_package( OpenCV REQUIRED )
add_executable( test test.cpp )
target_link_libraries( test ${OpenCV_LIBS} )
我想我失去了一些标志。有谁知道我应该怎么做才能用 CUDA 运行 opencv 代码?
【问题讨论】:
-
检查 make VERBOSE=1 是否真的缺少标志。
标签: opencv