关于Android OpenCV端口的任何缺点?

Pan*_*oro 6 android swig opencv android-ndk

之前我和OpenCV一起使用过Android,而我一直试图做的是尽可能少地使用我的本机代码和我的java代码之间的调用.当我查看Android 的OpenCV 端口时,看起来他们只是为每个本机函数创建一个包装器函数并从java调用它们.现在,除非我完全误解swig包装器的原理和这个端口的整个想法,这不会比在本机代码中进行实际编码慢得多吗?我注意到在本机代码和java代码之间传递数据真的很慢,所以我不明白为什么它似乎是这个端口中最正常的东西.

我自己使用它,但我只是决定忽略所有的包装器并按原样使用代码,并使用Android教程提供的常规方法创建自己的包装器.

所以我的问题是,我对错误的看法是错的吗?或者他们实际上是在那里使用OpenCV的真正优势是什么?我知道这些问题有点不正式,但我希望你们可以帮助我.

ogn*_*ian 4

我无法给你你正在寻找的答案,但这就是我的想法:有很多 JNI 层的例子,它们包装了每个本机函数 - OpenGL、Android 的 Canvas 等。通过 JNI 调用比完全在本机中工作要慢代码,但问题是它对具体应用程序有什么影响吗?我相信在大多数情况下,与本机函数内花费的时间相比,这种时间损失可以忽略不计。然而,我赞成在 Android 应用程序的本机代码中做尽可能多的工作,主要不是因为执行速度更快,而是因为与 C 和 C++ 相比,Java 是一种尴尬的语言。