如何使用 Opencv 将 PNG 从 Java class 传递到 Android 中的原生 class

How to pass PNG from Java class to Native class in Android with Opencv

我想将 PNG 格式的图像文件传递给原生 class 以使用 OpenCV 执行 alpha 混合。为此,我需要 PNG 的所有 4 个通道。我要传递的图像文件在我的资产文件夹中。我想知道将它传递给原生 class 的最佳方式是什么?谢谢。

我正在使用 Android Studio 3.3.2OpenCV4Android 4.1.0

您始终可以将图像序列化为字节并将其传递给 JNI 代码。在 JNI 内部,您可以反序列化它。

http://jnicookbook.owsiak.org/recipe-No-007/

您还可以传递对象并在 JNI 中提取它的字段。但这需要在 JNI 方面进行一些调整

http://jnicookbook.owsiak.org/recipe-No-020/

无论如何,在某些时候,您将不得不从 Java 访问数据并将其转换为 C/C++ 格式(例如 OpenCV 使用的结构)。

如果您有权访问该文件,您还可以传递文件的位置(字符串)并在 C/C++ 代码中读取文件

http://jnicookbook.owsiak.org/recipe-No-009/