在Cuda内核中调用Opencv函数

在Cuda内核中调用Opencv函数,c,opencv,cuda,parallel-processing,opencl,C,Opencv,Cuda,Parallel Processing,Opencl,我打算执行一个由4幅图像组成的全景图。为此,我打算处理图像1和2,2和3,然后3和4,得到同形文字,然后缝合图像 现在,可以并行地获取每个图像中的SIFT特征。因此,在GPU上使用CUDA,我打算在将映像传递给内核后,在每个内核中调用Surffeatureextractor和descriptor 现在,我想知道是否有可能在cuda内核中编写opencv函数?例如,如果我的内核是 extract_sift(image, *keypoints, *descriptor) {

我打算执行一个由4幅图像组成的全景图。为此,我打算处理图像1和2,2和3,然后3和4,得到同形文字,然后缝合图像

现在,可以并行地获取每个图像中的SIFT特征。因此,在GPU上使用CUDA,我打算在将映像传递给内核后,在每个内核中调用Surffeatureextractor和descriptor

现在,我想知道是否有可能在cuda内核中编写opencv函数?例如,如果我的内核是

    extract_sift(image, *keypoints, *descriptor)
    {
    //I want to call sift descriptor from an external opencv lib here }

请让我知道如何做,或者让我找到某些帮助我做到这一点的链接。

你所要求的是不可能的。如果您了解OpenCL体系结构,那么很清楚为什么:内核运行在不同的设备上,具有不同的内存、体系结构等,并且与它们的所有通信都是通过缓冲区进行的。您可以将描述符作为结构(更准确地说是指向该结构的指针)传递给内核,前提是您还可以在OpenCL代码中声明相同的结构。

OpenCV现在有一个gpu库,如果您想试试的话。但是您仍然不能从内核内部调用它。