GPU在OpenCV 3.0上的功能在哪里?

时间:2014-11-13 12:45:02

标签: c++ opencv cuda

据我所知,在OpenCV 3.0中,模块GPU已被模块CUDA取代,或者更好地将其拆分为多个模块。

所以cv::gpu::GpuMat已被cv::cuda::GpuMat取代,很好。

但是这些功能呢?

例如,将以下内容移至:

cv::gpu::GaussianBlurr ?
cv::gpu::Stream stream;
stream.enqueueConvert(...)

显然他们不在cuda模块下(例如,没有cv::cuda::GaussianBlurr)。哪些功能可以在OpenCV 3.0中找到?

1 个答案:

答案 0 :(得分:6)

所有CUDA加速滤镜(Blur,GaussianBlur,Sobel等)都位于cudafilters模块中:https://github.com/Itseez/opencv/blob/master/modules/cudafilters/include/opencv2/cudafilters.hpp

新API使用基于Algorthim的方法:

cv::Ptr<cv::cuda::Filter> filter = cv::cuda::createGaussianFilter(src.type(), dst.type(), ksize, sigma);
filter->apply(src, dst);

新方法有助于减少内部缓冲区的内存分配,并减少过滤器初始化阶段的开销。