一方の列にフレーム番号があり、もう一方の列に対応する色のモーメントがあるテーブルがあります。私はopenCVを使ってそれらを見つけました。一部のフレームの値は非常に高く、残りは非常に低くなっています。ピークが非常に高いフレームを抽出するにはどうすればよいですか?
これは分布のプロットです。下のプロットでガウス平滑化としきい値処理を使用してみました。
この結果が得られました。
では、どのように進めればよいですか?
基本的に、あなたはピークファインダーを探しています...MATLABにはピークを見つけるためのピークファインダー機能があります...これのためにOpenCVで既製のAPIが見つからなかったので、MATLABのピークファインダーを実装しました...アルゴリズムはこのようになります.. .
これを実装して、ピークファインダーの MATLAB ヘルプを確認してください。運が悪い場合は、コードを投稿できます..
編集したグラフを見た後に編集すると、グラフには最大ピークが明確に定義されているように見えるため、グラフの dy/dx の符号を追跡することができます。最大ピークは、コード言語で dy/dx の符号が正から負に変化するポイントです。
vector<double> array_of_max_peak;
if (sign( x(n+1) - x(n) ) ) > 0
array_of_max_peak.push(x(n));