2

I am using the wrapped version of the OpenCV image processing library for java (opencv java api by OpenCv) in order to detect cars' plates at the real time. Where in order to do so, I must gain the maximum possible processing speed for better performance, so I intended to try moving the calculations into the GPU where the OpenCV library has added, since 2010, what is called the OpenCV GPU module into the c++ library, supported by NVIDIA-CUDA. However, After a lot of research, I find that this GPU module is not supported in any of the opencv java api versions.

Then the question says:

Is it ever possible in JAVA to move the OpenCv processing procedures to the GPU without this GPU module? or is there any wrapped version out there for the OpenCv that supports this module in JAVA? or any other ideas?!!

Any help would be appreciated. Thanks in advance!!

HMaster
  • 49
  • 9

1 Answers1

-1

Speed and Java are two opposite sides but if at all you want to accelerate ops by CUDA version of OpenCV, i would say write JNI wrapper interface to access them inside your Java Code.

Milind Deore
  • 2,887
  • 5
  • 25
  • 40
  • Thanks @Milind, sorry but I don't agree with u at this point, java could be one of the fastest high-level languages especially if you know how to use it at maximum performance... Besides, i know that i can wrap my own version but that would be my ever last choice. – HMaster Jul 27 '17 at 09:52
  • @HMaster Can it be faster than C/C++? Moreover, there is no other way to call CUDA APIs other than making JNI calls. – Milind Deore Jul 27 '17 at 12:38
  • Thanks again @Milind, of course, it couldn't be faster than C/C++ however it is much more productive, Concerning the JNI calls I agree that it is the only way to communicate with CUDA or any other C/C++ library, but I am looking for an already wrapped version of OpenCV that supports GPUs instead of coding it myself (that I will do when I find no other easy choices). Anyway I highly appreciate your reply, **thanks**. – HMaster Jul 27 '17 at 13:51