我正在使用opencv裁剪tif文件,everthing很好,除了将图像保存到文件 - opencv总是使用LZW压缩,但我不需要压缩生成的文件,我很欣赏opencv帮助节省我的磁盘空间,但现在不适合这样做。
那么有没有办法用特定的压缩方案(包括不压缩)保存tif文件?
原始图像没有应用压缩方案,我使用ROI选择区域和SaveImage将其保存到目标文件。任何帮助表示赞赏!
答案 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);