C++ OpenCV 3.0上的GPU功能在哪里?
我知道在OpenCV 3.0中,GPU模块已经被CUDA模块所取代,或者更好的是,它已经被拆分成几个模块 因此,C++ OpenCV 3.0上的GPU功能在哪里?,c++,opencv,cuda,C++,Opencv,Cuda,我知道在OpenCV 3.0中,GPU模块已经被CUDA模块所取代,或者更好的是,它已经被拆分成几个模块 因此,cv::gpu::GpuMat已被cv::cuda::GpuMat取代,很好 但是功能呢 例如,将以下内容移动到: cv::gpu::GaussianBlurr ? cv::gpu::Stream stream; stream.enqueueConvert(...) 显然,它们不在cuda模块下(例如,nocv::cuda::GaussianBlur)。在OpenCV 3.0中可以在
cv::gpu::GpuMat
已被cv::cuda::GpuMat
取代,很好
但是功能呢
例如,将以下内容移动到:
cv::gpu::GaussianBlurr ?
cv::gpu::Stream stream;
stream.enqueueConvert(...)
显然,它们不在cuda模块下(例如,no
cv::cuda::GaussianBlur
)。在OpenCV 3.0中可以在哪里找到此功能?所有CUDA加速过滤器(模糊、高斯模糊、Sobel等)都位于cudafilters
模块中:
新API使用基于Algorthim的方法:
cv::Ptr<cv::cuda::Filter> filter = cv::cuda::createGaussianFilter(src.type(), dst.type(), ksize, sigma);
filter->apply(src, dst);
cv::Ptr filter=cv::cuda::createGaussianFilter(src.type()、dst.type()、ksize、sigma);
过滤器->应用(src、dst);
新方法有助于减少内部缓冲区的内存分配,并减少过滤器初始化阶段的开销。所有CUDA加速过滤器(模糊、高斯模糊、Sobel等)都位于
cudafilters
模块中:
新API使用基于Algorthim的方法:
cv::Ptr<cv::cuda::Filter> filter = cv::cuda::createGaussianFilter(src.type(), dst.type(), ksize, sigma);
filter->apply(src, dst);
cv::Ptr filter=cv::cuda::createGaussianFilter(src.type()、dst.type()、ksize、sigma);
过滤器->应用(src、dst);
新方法有助于减少内部缓冲区的内存分配,并减少过滤器初始化阶段的开销。我不熟悉OpenCV代码库,但快速查看一下存储库,CUDA加速
GaussianBlur()
似乎在modulecudaoptflow
中。不幸的是,我甚至没有找到包含cudaoptflow的GaussianBlur。我在opencv/modules/cudaoptflow/src/cuda/farneback.cu中找到了GaussianBlur的源代码。可能由于构建配置问题,此代码未包含在您的构建中?我不熟悉OpenCV代码库,但快速查看一下存储库,CUDA加速GaussianBlur()
似乎在modulecudaoptflow
中。不幸的是,我甚至没有找到包含cudaoptflow的GaussianBlur。我在opencv/modules/cudaoptflow/src/cuda/farneback.cu中找到了GaussianBlur的源代码。可能由于生成配置问题,此代码未包含在生成中?