据我所知,在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中找到?
答案 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);
新方法有助于减少内部缓冲区的内存分配,并减少过滤器初始化阶段的开销。