opencv3.0中与CUDA相关的头文件和库解释

目前,opencv中的cuda接口能够实现的算法还比较少,并不是很齐全,使用前需要先确定算法是否存在cuda接口


相对2.x的改动

* 不再使用cv::gpu的命名空间,改用cv::cuda

* 头文件中需要单独引用

#include "opencv2/core.hpp"
#include "opencv2/cudaarithm.hpp"
#include "opencv2/cudafilters.hpp"
...

调用不同的cuda函数需要引用对应的头文件

* 增加了一些函数,同时删除了一些函数,改变了某些函数的用法

例如,gpu::add、 gpu::multiply、gpu::subtract的形参有所改动,使用stream时与2.x版本是一样的

例如,滤波函数的调用方式也改变了,先要创建一个cv::Ptr的对象,作为滤波器,然后调用该对象的apply方法进行实际滤波,以下为高斯滤波的例子:


cv::Ptr gauss = cv::cuda::createGaussianFilter(CV_32F, CV_32F, Size(11, 11), 1.5, 0, cv::BORDER_DEFAULT,-1);	//创建高斯滤波器
gauss->apply(src, dst);	//高斯滤波



前提说明:每个库包含的类或函数均可以在对应的.hpp中找到,与cuda相关的hpp存放在include\opencv2目录下,并以cuda开头


opencv2/cudaarithm.hppopencv_cudaarithm300.lib

基本运算,如add、subtract、multiply、divide等


opencv2/cudaimgproc.hppopencv_cudaimgproc300.lib

图像处理(色域处理、直方图、霍夫变换、特征检测),如HoughLinesDetector类、CannyEdgeDetector类、CLAHE类、calcHist函数等


opencv2/cudafilters.hppopencv_cudafilters300.lib

二维图像滤波算法,如Box Filter、Linear Filter、Laplacian Filter等


opencv2/cudafeatures2d.hpp和opencv_cudafeatures2d300.lib

特征检测和描述,DescriptorMatcher类、ORB类


opencv2/cudaobjdetect.hpp和opencv_cudaobjdetect300.lib

目标检测,包括HOG、CascadeClassifier

你可能感兴趣的:(图像处理,OpenCV)