2

フレーム内のマーカー (画像) の存在を検出してビデオを分割しようとしています。私はドキュメンテーションを調べましたが、そうでremovelogoはありませんdetectlogo

これを達成する方法を知っている人はいますか?ロゴが何であるか、それが表示される地域を知っています。

すべてのフレームを png に抽出し、それらを 1 つずつ (または n x n) 分析できると考えていますが、それは長いプロセスになる可能性があります...

ポインタはありますか?

4

2 に答える 2

3

ffmpeg にはネイティブにそのような機能はありません。フィルターはdelogo、パラメーターに長方形の領域を取り、その周囲に基づいてその領域を補間するだけで機能します。領域が以前に何を含んでいたかは気にしません。以前に含まれていたものに関係なく、領域を埋めます。

ロゴの存在を検出する必要がある場合、それはまったく別の作業です。自分で作成する必要があります。これについて真剣に考えている場合は、ffmpeg フィルター API に慣れ始めて、手を汚す準備をすることをお勧めします。ロゴに独特の色がある場合、それはそれを検出する良い方法かもしれません。

あなたが求めているのはおそらく、どのフレームにロゴが含まれているか (または含まれていないか) に関する情報を出力するだけなので、モデルとして見る 1 つのフィルターはblackframeフィルター (すべて黒のフレームを検索する) になります。

于 2012-07-13T21:53:19.900 に答える
2

ロゴ検出モジュールを作成し、ビデオをデコードし(YUV 420P FORMAT)、生のフレームをこのモジュールにフィードし、ロゴが期待される領域でSAD(絶対差の合計)を実行します。SADが無視できる場合は、一致し、フレーム番号を記録します。これらのフレームでビデオを分割できます。SADはY(luma)フレームでのみ実行されます。処理を節約するために、デコードする前にビデオを低解像度にスケーリングできます。

于 2012-07-15T01:29:34.530 に答える