据我所知,在OpenCV 3.0中,模块GPU已被模块CUDA取代,或者更好地将其拆分为多个模块.
所以cv::gpu::GpuMat已被取代cv::cuda::GpuMat,很好.
但功能怎么样?
例如,移动到以下位置:
cv::gpu::GaussianBlurr ?
cv::gpu::Stream stream;
stream.enqueueConvert(...)
Run Code Online (Sandbox Code Playgroud)
显然他们不在cuda模块下(例如,没有cv::cuda::GaussianBlurr).哪些功能可以在OpenCV 3.0中找到?
所有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);
Run Code Online (Sandbox Code Playgroud)
新方法有助于减少内部缓冲区的内存分配,并减少过滤器初始化阶段的开销.