【发布时间】:2017-08-01 23:45:19
【问题描述】:
系统信息(版本)
- OpenCV => 3.2
- 操作系统/平台 => Windows 10 64 位
- 编译器 => Visual Studio 2015 社区
- CUDA 工具包版本 => 8.0
详细说明
我正在使用基于 GPU 的功能和操作。我自己构建了支持 CUDA 的 OpenCV,大多数 GPU 功能和操作都可以正常工作。但是当涉及到像createGaussianFilter或createSobelFilter这样的过滤相关函数时,会捕获以下异常:
C:\OpenCV\opencv-3.2.0\modules\cudafilters\src\filtering.cpp:414: 错误: (-215) rowFilter_ != 0 in function `anonymous-namespace': :SeparableLinearFilter::SeparableLinearFilter
重现代码
// C++ code example
// A very simple snnipet
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/cuda.hpp>
#include <opencv2/cudaimgproc.hpp>
#include <opencv2/cudafilters.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
try
{
Ptr<cuda::Filter> filterX = cuda::createSobelFilter(CV_64F, CV_64F, 1, 0, 3, 1, BORDER_DEFAULT); // x direction
}
catch (cv::Exception& e)
{
const char* err_msg = e.what();
std::cout << "exception caught: " << err_msg << std::endl;
}
return 0;
}
【问题讨论】:
-
你可以试试:
cuda::createSobelFilter(CV_32F, CV_32F, 1, 0, 3, 1, BORDER_DEFAULT);? -
@Catree 没关系!!!谢谢!但我不明白为什么?你想写一个答案让我接受吗?