accelerate OpenCV functions on gpu through CUDA
Dear all,
I'm working on an image procession python algorithm using openCV. Since I have a lot of images to proccess, I'm trying to accelerate it on a NVIDIA Jetson card using CUDA. During the last two months, I've tried many and many different solutions found on the Internet.
The best solution I've found is to translate my python algorithm in c++, and then use the accelerated functions provided in cv::cuda.
Is it the fastest solution ??
But I still need to accelerate functions (as cv::undistort tody, but it could be others in a near future).
How could I accelerate Opencv functions using CUDA ??
I'm actually working on building my own accelerate version of the undistort function from source code, but it is more complex than I though
How can I easily build an opencv function after modification ??
Thanks,
Why not use the Python API directly instead of translating to C++? By accelerate OpenCv functions using CUDA do you mean, how can you write CUDA kernel's? Is there anyway you can overlap processing on the GPU with functions on the host which don't have OpenCV CUDA implementations?
Since opencv is implemented in c and c++, its easier for me to implement my whole code in thoses languages in case I have to modify some opencv functions. Using opencv functions using cuda means that I use functions from cv::cuda, giving them GpuMat in arguments. I could try to overlap, but the host functions are like 6 or 7 times slower than the GPU ones, so overlaping corresponds to being restricted by the CPUs
OK so what is your question, how to implement cv::undistort in CUDA?
how to implement non accelerated opencv functions on CUDA ?
I was hoping that wasn't going to be your question. My answer unfortunately is that:
Then including in OpenCV should be relatively straight forward as all the API's are there to access and manipulate the GPU's memory.
Thank you I think I have a lot of work now