0

JPEG形式のフレームがあります。
フェードイン/フェードアウトフレーム(ほとんどが黒いフレーム)かどうかを定義したいと思います。
記事を読んで、その通りにしようとしましたが、正しく動作しません。
これがアイデアです:
最初にフレームの特徴ベクトルを定義する必要があります:
色ヒストグラムは色相成分からのみ計算されます。色相成分は、支配的なスペクトル成分の色を純粋な形で表します (Manjunath et al., 2001)。さらに、重要な情報を失うことなくデータ量を大幅に削減することを目的として、カラー ヒストグラムの量子化を 16 カラー ビンに設定し、フレーム特徴ベクトルの標準偏差を計算します。モノクロ フレームの標準偏差は、ゼロまたはゼロに近い十分に小さい値です。4 この情報は、これらのフレームを削除するために VSUMM によって使用されます。この手順は、フリニらによっても採用されています。(2010)。
コードは MATLAB にあります。

str = num2str(50);
filename1=strcat('pics\' , str , '.jpeg');
Im1 = imread(filename1);
hsv = rgb2hsv(Im1);
hn1 = hsv(:,:,1);
hn1 = hn1/norm(hn1);
f=std2(hn1)

アイデアによれば、fゼロまたはゼロに近い十分に小さい値に等しい必要があります。すべてのフェード イン/フェード アウト フレームで正しいですが、結果が通常のフレームでゼロに近い小さな値になることがあります。これは間違っています。何が問題なのですか?
例として、私は 4 つの写真をアップロードします:
フェード イン/アウト フレームである最初の 2 つの写真の結果は 9.3340e-04,9.9959e-04 であり、通常のフレームである 3 番目の画像の結果は 0.23 であり、これらの結果はすべて正しいですが、通常のフレームである 4 番目のフレームのような一部のフレームの結果は 8.2447e-04 で、これは間違っています。
正直なところ、このコードはそれほど重要ではありません。通常のフレームとフェードイン/アウト フレームを区別するコードが必要なだけです。

ここに画像の説明を入力 ここに画像の説明を入力 ここに画像の説明を入力 ここに画像の説明を入力

4

0 に答える 0