私は、カメラからの特定のフレームとキー画像の単純な XOR 操作を使用したある種の暗号化を含むビデオ処理プロジェクトに取り組んでおり、最終的にビデオ ファイルを保存します。また、復号化フェーズでは、同じ画像を使用した XOR 操作で元のフレームが取得されます。しかし、問題は、フレームを復号化しているときに非常にノイズが多いように見え、保存中に使用した非可逆画像圧縮形式が原因であることがわかりました。opencv 用のロスレス画像圧縮形式は他にありますか??
4 に答える
Windows で作業している場合は、コンストラクターCV_FOURCC_PROMPT
の 2 番目のパラメーターとして使用VideoWriter
できます。リストからコーデックを選択し、さまざまなオプションを設定できます。テストのためだけに使用できますuncompressed avi (aka full frames [not compressed])
。巨大なファイルが生成されますが、正常に動作するはずです。
それ以外の場合は、リストからすべての可能性を確認してください
http://www.fourcc.org/codecs.php
HighGui is meant as a simple tool for experimentation.
(http://opencv.willowgarage.com/wiki/VideoCodecs)そのため、探している機能が提供されない場合があることに注意してください。その場合、他のライブラリを使用して、opencv によって処理される各フレームを提供する必要があります。
OpenCVの古いページによると:
利用可能なロスレス ビデオ コンプレッサーがいくつかあります。ただし、すべてのプラットフォームで同時にサポートされる単一のものはありません。HuffYUV、CorePNG、Motion PNG、または Motion JPEG2000 を探します。
最近のOpenCV ドキュメントでは、 JPG2000やLAGS ( Lagarith Lossless Codec )など、いくつかの代替手段についても言及しています。
少し前に、誰かがOpenCV と FFmpeg を使用して可逆圧縮でビデオをレンダリングした方法を説明するメッセージを投稿しました。
ほとんどのコーデックは非可逆です。ロスレス ビデオ ファイルが必要な場合は、ロスレス コーデックを使用する必要があります (例: FFMPEG FFV1、Huffman HFYU、Lagarith LAGS など...)。
FFMPEG が有効な場合、codec=0 を使用します。fps=0; 非圧縮 (生) ビデオ ファイルを作成できます。