3

imwrite() OpenCV関数を使用しようとしています。拡張子が.TIFFのフレームを保存したい。私が抱えている問題は、保存された画像が圧縮されているため、使用できないことです。この圧縮をどのように回避できるか考えていますか?

前もって感謝します

4

3 に答える 3

3

シーチェの言うことは気にしないでください。TIFF フラグは、LZW 圧縮を使用して opencv バイナリにハードコーディングされています。これをオフにする (コメントアウトする) か、変更することができます。の:

3rdparty/libtiff/tiff.h

次の行を削除します。

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

次にコンパイルします。プレスト。それ以外の Tiff オプションは、画像に応じて自動的に設定されます (8 ビット、16 ビット、カラー、RGB、RGBA など)。

于 2013-04-14T23:27:53.560 に答える
2

ドキュメントによると、OpenCV は、イメージ ファイルを書き込むための限定されたオプション セットのみを公開します。どれも TIFF ファイルに属していません。

したがって、独自の関数を使用したり、OpenCV ソースを変更したりしない限り、これは不可能です。TIFF ファイルを使用する特別な理由がない限り、PXM や BMP などの別の非圧縮形式を使用してフレームを保存することをお勧めします。

于 2013-01-04T11:29:28.753 に答える
0

最も簡単な方法は、OpenCV を再コンパイルするか、libtiff を使用して直接コンパイルすることですが、3rdparty/libtiff/tiff.h を変更することはあまりお勧めできません。通常、別のlibtiffがあります(OpenCVの一部としてではありません)。

より簡単なアプローチをお勧めします (まだ OpenCV の再コンパイルですが、圧縮された tiff を書き込む可能性を節約し、libtiff を直接変更しないでください): OpenCV で圧縮されていない TIFF を保存する

于 2014-10-24T18:08:51.963 に答える