步骤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并且找不到图像。
有没有其他解决方案来转换字节数组,请证明我,谢谢