mat对象作为字节数组和jpg格式有什么区别?

时间:2015-11-11 11:54:34

标签: java opencv byte

我将Mat对象保存为byte数组:

public static void save(Mat mat, String name)
{
    File file = new File(path, name);
    int length = (int) (mat.total() * mat.elemSize());
    byte buffer[] = new byte[length];
    mat.get(0, 0, buffer);
    try
    {
        FileUtils.writeByteArrayToFile(file, buffer);
    } catch (IOException e)
    {
        e.printStackTrace();
    }
}

我通过Imgcodecs.imwrite();保存,但文件大小非常不同:JPG文件大小小于100kb但字节文件大小超过1兆字节。

为什么第二个文件要大得多?

1 个答案:

答案 0 :(得分:0)

第一个文件是实际的压缩图像文件。第二个文件只是一个字节数组,它不是压缩的,因此包含更多数据并且更大。

检查下面的链接,他们会更深入地解释图像压缩的含义以及有损压缩和无损压缩之间的区别。