【问题标题】:Calling an Opencv function inside a Cuda Kernel在 Cuda 内核中调用 Opencv 函数
【发布时间】:2012-04-28 10:34:30
【问题描述】:

我打算执行 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 }

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

【问题讨论】:

标签: c opencv cuda parallel-processing opencl


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-08
    • 2021-02-07
    • 2018-07-22
    • 2012-04-13
    • 2016-01-22
    • 2011-08-09
    • 2023-04-06
    相关资源
    最近更新 更多