1

I intend to perform a panorama of 4 images. For this, I intend to process images 1 and 2, 2 and 3 and then 3 and 4 and get the homographies and then stitch the images.

Now, getting the SIFT features in each image can be parallelized. So, using CUDA on a GPU, I intend to call Surffeatureextractor and descriptor in each kernel after having passed the image to the kernel.

Now, I wish to know if it is possible to write an opencv function inside a cuda kernel? for example, if my kernel is

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

Please let me know how to do that or direct me to certain links that help me do that.

1

1 Answer 1

2

What you ask is impossible. If you understand the OpenCL architecture, it is clear why: kernels run on a different device, have different memory, architecture etc, and all communication with them is via buffers. You can pass your descriptor as a struct (pointer to that struct, more precisely) to the kernel, provided you also declare that same struct in the OpenCL code.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.