笔记: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();
}
Java与OpenCV图像处理流转换技巧
本文详细介绍了如何使用Java将文件输入流转换为字节数组,并利用OpenCV进行图像处理,包括Mat对象与输入流之间的相互转换。通过实例展示了如何将Mat对象保存为文件或转换为输入流,便于在网络中传输图像数据。
12万+

被折叠的 条评论
为什么被折叠?



