JavaCV从运行时的角度看OpenCV

时间:2012-02-27 16:25:42

标签: java android opencv runtime javacv

我正在构建一个包含图像处理技术的Android应用程序。从运行时的角度来看,哪个是更好的JavaCV还是OpenCV?

3 个答案:

答案 0 :(得分:5)

他们的运行时开销似乎大致相同,但android-opencv包装器不允许通过直接NIO缓冲区访问原始数据,从而使Java中的自定义处理效率低得多。 JavaCV对这些任务更有效。作为JavaCV的作者,我也更喜欢它的API :)它比原始的C / C ++ API更接近android-opencv。

编辑:另一个区别是android-opencv强制用户使用NDK和JNI来编写函数。由于JavaCV基于JavaCPP,因此我们可以更轻松地编写本机函数,而无需同时处理NDK和JNI。

答案 1 :(得分:0)

使用Android NDK编写本机代码通常比使用SDK快得多。 您可以使用带有NDK的opencv找到很好的教程here。请注意,使用NDK框架,您可以访问openGL函数。

答案 2 :(得分:0)

JavaCV只是本机OpenCV库的Java包装器。 OpenCV确实提供了Java / SWIG绑定。我已经使用了两种绑定,并没有看到两者之间存在显着差异。

如果您正在编写仅限原生的应用程序,请使用本机OpenCV。