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

时间:2018-01-07 01:16:06

标签: java android c++ opencv bitmap

我想通过jni将我的android类中的位图传递给我的本机c ++类,然后执行另一方的opencv处理。

我不知道如何准备数据进入byte []数组,使用像getPixels这样的东西。我需要考虑RGB吗?

1 个答案:

答案 0 :(得分:1)

您必须将Bitmap转换为Mat。具有效用转换方法的org.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了解更多信息。谢谢