1

我打算执行 4 张图像的全景图。为此,我打算处理图像 1 和 2、2 和 3,然后处理 3 和 4,得到单应性,然后拼接图像。

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

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

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

请让我知道如何执行此操作,或将我引导至某些可以帮助我执行此操作的链接。

4

1 回答 1

2

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

于 2012-04-17T06:32:32.890 回答