2


opencv を使用して tif ファイルをトリミングしています。画像をファイルに保存することを除いて、すべて問題ありません。opencv は常に LZW 圧縮を使用しますが、結果のファイルを圧縮する必要はありません。 、しかし今はそれを行う適切な時期ではありません。
特定の圧縮スキーム(圧縮なしを含む)またはなしで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 COMPRESSION_NONE。

于 2012-04-18T09:42:10.627 に答える