ヒストグラム(intの配列で表される)があり、ローカルの最大値と最小値を見つける最良の方法を探しています。各ヒストグラムには3つのピークがあり、そのうち1つはおそらく他のピークよりもはるかに高いピークです。ヒストグラムの極大/ピークと極小点の検索
最初の「谷」(絵に完全に最初のピークを取り除くために)最初のピークを以下の
を検索を検索:
は、私はいくつかのことをしたいです残りの2つのピークの間に最適な「谷」値を設定して画像を区切ります。
大津の亜種を実装することで、手順2を実行する方法はすでに分かっています。 しかし、私はステップ1と苦労しています
残りの2つのピークの間の谷が十分に低くない場合は、警告を出したいと思います。また、画像は、ステップ1と3を行うには、ブルートフォースアルゴリズムであるもの
ためのアカウントへのノイズの少ない、非常にきれいな
ですか?私は大津を実装する方法を見つけることができましたが、ブルートフォースは数学的に私を逃げ出しています。結論としては、大津のような方法を扱うためのドキュメントが多く、単に山と谷を見つけるだけではありません。私は何かを探しているわけではありません(つまり、それは一時的な解決策です、私はそれに多くの時間を費やすことができるまで、合理的な時間枠で実装する必要があります)
私はこれをすべてC#
どの手順を実行するとよいでしょうか? ありがとうございました!
EDIT:いくつかのより多くのデータ:
最もヒストグラムは、背景を表す第1のピークと、最初のもののようである可能性が高いです。
はあなたには、いくつかのサンプルデータを与えることができるしてください? – ose
ピークの周りの領域が正常に分布しているように見えますか?たとえば、あなたのデータに3つの独立した正規分布を当てはめる。標準偏差を使ってカットオフ点を決め、ピークと谷を特定することができます。 – Andreas
3つの異なるクラスタを得るためにk = 3のAlgorithmを使用するとどうなりますか?物事がうまくいくと、各重心はピークの1つに対応するはずです。 – Reinhard