我需要为我的项目开发一个图像处理程序,在该程序中我必须计算道路上的汽车数量。我正在使用 GPU 编程。我应该选择具有 GPU 处理功能的 OpenCV 程序,还是应该在没有任何 OpenCV 库的情况下在 CUDA 上开发整个程序?
我用来计算汽车数量的算法是背景减法、分割和边缘检测。
我需要为我的项目开发一个图像处理程序,在该程序中我必须计算道路上的汽车数量。我正在使用 GPU 编程。我应该选择具有 GPU 处理功能的 OpenCV 程序,还是应该在没有任何 OpenCV 库的情况下在 CUDA 上开发整个程序?
我用来计算汽车数量的算法是背景减法、分割和边缘检测。
您可以在 OpenCV 中使用 GPU 函数。
首先访问有关此的介绍:http: //docs.opencv.org/modules/gpu/doc/introduction.html
其次,我认为上述过程已经在针对 GPU 优化的 OpenCV 中实现。因此使用 OpenCV 进行开发会容易得多。
Canny 边缘检测:http ://docs.opencv.org/modules/gpu/doc/image_processing.html#gpu-canny
PerElement 操作(包括减法):http ://docs.opencv.org/modules/gpu/doc/per_element_operations.html#per-element-operations
有关其他功能,请访问 OpenCV 文档。
毫无疑问,OpenCV 拥有最大的图像处理功能集合,最近他们也开始将功能移植到 CUDA。最新的 OpenCV 中有一个新的 GPU 模块,几乎没有移植到 CUDA 的功能。
话虽如此,OpenCV 并不是构建基于 CUDA 的应用程序的最佳选择,因为有许多专用的 CUDA 库(如CUVI )在性能方面击败了 OpenCV。如果您正在寻找优化的解决方案,您也应该尝试一下。