2016-10-08 7 views
1

Dotted imageは画像

内の図形の中心と面積の検出私はGDライブラリで働いている、と私は図形の真ん中の中心に最も近いピクセルを検出する方法を探しています、だけでなく、使用される総面積単色の白黒画像における各形状によって生成される。

私はこれを行うための効率的なアルゴリズムを考え出すのが難しいです。あなたが過去にこれに似たことをやったことがあれば、助けになる解決策には感謝しています。

答えて

1

は大津のしきい値は、連結成分にラベルを付け、その後、バックグラウンドからフォアグラウンドを分離するために、基本的に

をバイナリイメージライブラリをチェックしてください。その特定のイメージは非常にきれいに見えますが、それを少しきれいにして小さな穴やその他のアーティファクトを取り除くためにはmorphオペレーションが必要な場合があります。

次に、面積が些細なもの(コンポーネントのピクセル数)またはほぼ同じくらい小さいもの(エッジピクセルにペナルティをかける重み付き領域関数を使用)があります。センターは単なる平均です。

http://malcolmmclean.github.io/binaryimagelibrary/

1

@MalcolmMcLeanは正しいですが、(あなたが最大の精度の後にある場合)残りの困難があります。

大津でしきい値を設定した場合、接続されたコンポーネント分析を使用して1つのブロブを形成する「キス」ドットがいくつかあります。

さらに、大津のスレツディングでは、部分的に塗りつぶされたエッジピクセルの一部が破棄されるため、加重平均が不正確になります。キュアは閾値を上げることです(最大254回まで可能です)が、キッシングドットの問題を悪化させます。

回避策は、しきい値を低く抑え、ブロブを個別に拡張して、すべてのエッジピクセルをカバーする適切なマスクを取得することです。たとえそうであっても、わずかな不正確さがキスの近くになる。

流域変換によるブロブ分割も可能ですが、共通ピクセルを扱うためにはさらに注意が必要です。私は理事会の解決策が可能であるとは思わない。


代替案は、(ドットを分離するために、非常に低い閾値とブロブ検出後の)サブピクセルエッジ検出及び最小二乗サークルフィッティングを使用することです。 2つの円に共通するエッジピクセルを避けることで、おそらく優れた結果が得られます。