笔记:opencv 流操作 mat
- java把输入流转换成byte数组:
fileInput = new FileInputStream(file);
BufferedInputStream bi = new BufferedInputStream(fileInput);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] bs = new byte[1024];
int len;
while ((len = fileInput.read(bs)) > 0) {
baos.write(bs, 0, len);
}
- base64转化
String faceImgBase64 = Base64.encode(baos.toByteArray());//测试没有问题,参数里面传递的是byte数组
- Mat
//mat转输入流 public static InputStream mat2InputStream(Mat mat) { MatOfByte mob = new MatOfByte(); imencode(".jpg", mat, mob); byte[] byteArray = mob.toArray(); return new ByteArrayInputStream(byteArray); } public static void mat2File(Mat mat){ MatOfByte mob = new MatOfByte(); imencode(".jpg", mat, mob); imwrite("f:\\img\\test.png",mat); // byte[] byteArray = mob.toArray(); }