我正在使用opencv android转换BitmapToMat图像。当我从Mat将图像传递给本机代码(c ++)时,图像通道会发生变化。 我们直接传递Mat图像而不进行转换(bitmaptomat),图像通道保持不变。
还有其他有效的方法将图像从android传递到本机c ++。 有没有使用OpenGL ES的可能性.. 谢谢
答案 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();
但是,您能否确定频道的更改方式?