我的代码用c ++编写,我使用openCV函数进行图像处理任务。
我想在GPU中运行我的代码(使用cuda)来读取相机/流输入并在每个帧中并行执行图像处理任务。
我读过一些我无法在.cu代码中包含openCV函数的地方,因为NVCC无法编译openCv函数(如果不是这样,请纠正我)
我在openCV文档中找到了openCV gpu模块,但是我不希望并行运行整个函数,我想要并行处理整个算法(换句话说,在cuda中包含openCv而不是反过来),所以我想过用cuda编写我所有的openCV函数,但我是cuda的新手。 我的问题:
1-是否有可以使用cuda函数代替openCv函数:
我在Github中找到了一些,但仍然没有测试过,任何文档都会受到高度赞赏。
2- cuda是否只读取.pgm图像格式,我应该在将它们复制到设备之前转换它们吗?是否无法直接将相机输入读取到GPU全局内存?
3-您是否建议将我的代码保存在openCV中并使用其他库进行并行处理,如openCL?或使用CPU(而不是GPU)使用OpenMP进行并行处理?什么可能是我应该选择的最佳选择?
答案 0 :(得分:1)
在开始这条路线之前,我建议您完成本教程的前几课:
https://www.udacity.com/course/cs344
然后,您将更好地了解GPU是否适合您的应用程序所需的内容。
在任何情况下,openCV 1.0主要在C中,而cuda内核在C中,所以也许你可以尝试将其中的一些包装到cuda内核中
干杯