imwrite() OpenCV関数を使用しようとしています。拡張子が.TIFFのフレームを保存したい。私が抱えている問題は、保存された画像が圧縮されているため、使用できないことです。この圧縮をどのように回避できるか考えていますか?
前もって感謝します
シーチェの言うことは気にしないでください。TIFF フラグは、LZW 圧縮を使用して opencv バイナリにハードコーディングされています。これをオフにする (コメントアウトする) か、変更することができます。の:
3rdparty/libtiff/tiff.h
次の行を削除します。
#define COMPRESSION_LZW 5 /* Lempel-Ziv & Welch */
次にコンパイルします。プレスト。それ以外の Tiff オプションは、画像に応じて自動的に設定されます (8 ビット、16 ビット、カラー、RGB、RGBA など)。
ドキュメントによると、OpenCV は、イメージ ファイルを書き込むための限定されたオプション セットのみを公開します。どれも TIFF ファイルに属していません。
したがって、独自の関数を使用したり、OpenCV ソースを変更したりしない限り、これは不可能です。TIFF ファイルを使用する特別な理由がない限り、PXM や BMP などの別の非圧縮形式を使用してフレームを保存することをお勧めします。
最も簡単な方法は、OpenCV を再コンパイルするか、libtiff を使用して直接コンパイルすることですが、3rdparty/libtiff/tiff.h を変更することはあまりお勧めできません。通常、別のlibtiffがあります(OpenCVの一部としてではありません)。
より簡単なアプローチをお勧めします (まだ OpenCV の再コンパイルですが、圧縮された tiff を書き込む可能性を節約し、libtiff を直接変更しないでください): OpenCV で圧縮されていない TIFF を保存する