java - 准备位图 byte[] 数据以传递给 jni

标签 java android c++ opencv bitmap

我想通过 jni 将位图从我的 android 类传递到我的 native c++ 类,然后在另一端执行 opencv 处理。

我不明白如何使用 getPixels 之类的方法准备数据以进入 byte[] 数组。我需要考虑 RGB 吗?

最佳答案

您必须将 Bitmap 转换为 Matorg.opencv.android.Utils 具有效用转换方法的类。它以Bitmap作为ARGB_8888RGB_565类型的参数。

import org.opencv.android.Utils;
private void convertToMat(Bitmap bitmap){
    Mat mat = new Mat();
    Bitmap bmp32 = bitmap.copy(Bitmap.Config.ARGB_8888, true);
    Utils.bitmapToMat(bmp32, mat);
}

这只是一种方式。查看This thread更多。谢谢

关于java - 准备位图 byte[] 数据以传递给 jni,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48133502/

相关文章:

android - 如何在 json 对象响应中解析 json 数组?

android - 当我尝试通过线程启动另一个 Intent 时,我的初始屏幕背景没有显示

c# - C# 是适用于大型项目的可行语言吗?

java - 将 Camel 路线配置返回到 xml

java - 试图找到满足 n + x = n ^ x 的 x 的数量因超时而失败

Java (Android) 字符串中的 UTF-8 字符

c++ - std::tuple::get 返回常量类型&&

java - OnClickListener 无法解析为类型

android - 从首选项 XML 启动设置 Activity 在 2.x 中有效,但在 4.x 中无效

C++(半)文件保存/加载的反射? (黑客?)