2


我正在使用 opencv 裁剪 tif 文件,一切都很好,除了将图像保存到文件 - opencv 总是使用 LZW 压缩,但我不需要压缩结果文件,我非常感谢 opencv 在节省我的磁盘驱动器空间方面的帮助,但现在不是做这件事的合适时机。
那么有没有办法用特定的压缩方案(包括不压缩)来保存 tif 文件?

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

4

2 回答 2

5

在 OpenCV 3 中,您可以提供参数向量来更改压缩或每条线等内容,如下所示:

vector<int> params = { 
    259, 1,     // No compression, turn off default LZW
    279, 64     // Rows per strip 
};
imwrite("image.tiff", myImage, params);
于 2015-12-09T18:28:08.177 回答
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值,包括压缩_无。

于 2012-04-18T09:42:10.627 回答