有没有办法在opencv中保存tiff文件时设置特定的压缩方案?

时间:2012-04-18 08:11:39

标签: image-processing opencv compression tiff


我正在使用opencv裁剪tif文件,everthing很好,除了将图像保存到文件 - opencv总是使用LZW压缩,但我不需要压缩生成的文件,我很欣赏opencv帮助节省我的磁盘空间,但现在不适合这样做。
那么有没有办法用特定的压缩方案(包括不压缩)保存tif文件?

原始图像没有应用压缩方案,我使用ROI选择区域和SaveImage将其保存到目标文件。任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:3)

TIFF压缩级别是硬编码的,无法在运行时更改。如果您在计算机上编译OpenCV,则可以编辑此文件中的压缩级别

3rdparty/libtiff/tiff.h

你会发现这一行:

#define     COMPRESSION_LZW     5       /* Lempel-Ziv  & Welch */

希望有所帮助。

编辑:在opencv代码中看到这一行: https://github.com/Itseez/opencv/blob/b46719b0931b256ab68d5f833b8fadd83737ddd1/modules/imgcodecs/src/grfmt_tiff.cpp#L564 您应该能够为TIFFTAG_COMPRESSION传递所需的值,包括COMPRESSION_NONE。

答案 1 :(得分:3)

在OpenCV 3中,您可以提供一个参数向量来更改压缩或每个条带的行数,如:

vector<int> params = { 
    259, 1,     // No compression, turn off default LZW
    279, 64     // Rows per strip 
};
imwrite("image.tiff", myImage, params);