如何在Android opencv中将Mat转换为字节数组?

时间:2016-02-01 10:15:06

标签: android opencv mat

步骤1:我使用以下方法将Mat转换为字节数组

MatOfByte matOfByte = new MatOfByte();
  Imgcodecs.imencode(".png", mRgba, matOfByte); 
   byteArray = matOfByte.toArray();

其有效转换的字节数组值。但是,当我计算这个方法所用的时间是100 - 200ms及以上。

Step2:我在Opencv Facedetection中做了一个示例,我将一个字节数组值传递给native我有FPS计数是1.314。

Step3:在我的分析之前我没有调用本机只是我返回相同的捕获Mat我有FPS计数每秒13到18帧。

Step4:我发现问题是Mat to Byte数组转换需要更多时间才能转换,因此我没有对FPS进行任何改进。

Step5:我改变转换方法

byte[] return_buff = new byte[(int) (mRgba.total() * 
                mRgba.channels())];
mRgba.get(0, 0, return_buff);

此方法不能花费更多时间进行转换,但是当我将一个字节数组传递给本机时,通道值更改为1并且找不到图像。

有没有其他解决方案来转换字节数组,请证明我,谢谢

0 个答案:

没有答案