在Android中使用opencv,转换BitmapToMat是转换mat图像或转换Mat图像的任何其他可能性的有效方法吗?

时间:2015-08-28 14:43:24

标签: android c++ opencv native

我正在使用opencv android转换BitmapToMat图像。当我从Mat将图像传递给本机代码(c ++)时,图像通道会发生变化。 我们直接传递Mat图像而不进行转换(bitmaptomat),图像通道保持不变。

还有其他有效的方法将图像从android传递到本机c ++。 有没有使用OpenGL ES的可能性.. 谢谢

1 个答案:

答案 0 :(得分:2)

您可以通过直接向C ++传递Bitmap的字节来实现此目的: 在java中:     声明你的原生方法

a2.method2()

在C ++文件中,声明方法:

public native void bmpToJNI(byte[] myArray);

Bitmap bmp;
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();

但是,您能否确定频道的更改方式?