首页 文章

仅使用Cuda重写openCV函数

提问于
浏览
-1

我的代码用c编写,我使用openCV函数进行图像处理任务 .

我想在GPU中运行我的代码(使用cuda)来读取相机/流输入并在每个帧中并行执行图像处理任务 .

我已经读过一些我不能在.cu代码中包含openCV函数的地方,因为NVCC无法编译openCv函数(如果不是这样,请纠正我)

我在openCV文档中找到了openCV gpu模块,但是我不希望并行运行整个函数,我想要并行处理整个算法(换句话说,在cuda中包含openCv而不是相反),所以我想过用cuda编写所有openCV函数,但我是cuda的新手 . 我的问题:

1-是否有可以使用cuda函数代替openCv函数:

  • split,inRange

  • fillHoles

  • 形态学(侵蚀,扩张,闭合)

  • Countours(findContours,moments,boundingRect,approxPolyDP)

  • 绘图功能(drawContours,矩形,圆形)

  • kmeans(或任何其他集群功能)

我在Github中找到了一些,但仍未测试任何文档,任何文档都将受到高度赞赏 .

2- cuda只读取.pgm图像格式,是否应该在将.jpg帧复制到设备之前将其转换为?是否无法直接将相机输入读取到GPU全局内存?

3-您是否建议将我的代码保存在openCV中并使用其他库进行并行处理,如openCL?或使用CPU(而不是GPU)使用OpenMP进行并行处理?什么可能是我应该选择的最佳选择?

1 回答

  • 1

    在开始这条路线之前,我建议您完成本教程的前几课:

    https://www.udacity.com/course/cs344

    然后,您将更好地了解GPU是否适合您的应用程序所需的内容 .

    在任何情况下,openCV 1.0主要在C中,而cuda内核在C中,所以也许你可以尝试将其中的一些包装到cuda内核中

    干杯

相关问题