2011-02-02 28 views
0

私は現在取り組んでいるプロジェクトのフラッドフィルアルゴリズムを実装しています。私はそれを通常の目的、画像編集に使用しています。私は基本的なアルゴリズムには問題はありませんが、より見た目の良い塗りが欲しいです。どのような種類のファジィフラッドフィルアルゴリズムがありますか?

多くの場合、画像の領域にはほとんど1色の領域がありますが、わずかに明るくまたは暗いピクセルで囲まれています。私はこれらの境界ピクセルを残さない "あいまいな"洪水のためのアルゴリズムを知りたいと思います。 Iは、原点画素の二つの異なる、単純な距離メトリックwithn全ての画素を埋めるために試みた:

  1. マンハッタン距離は、全ての3色成分に:赤、緑、青
  2. 距離の最大色成分の間にある。

これらのいずれもトリックはしませんが、しばしば境界を残し、視覚的にはっきりとした「近い」色の隣接領域を埋めることもありません。

私の問題を解決するための魔法の弾丸はないと思うが、私はより良い結果を得るために何かアルゴリズムを知っていることに興味があるだろう。 。ネットの周りを見ると、「あいまいな洪水の平均シフトアルゴリズム」と呼ばれるものがあることがわかりましたが、それは同じことさえわかりません。実際の距離を用い

+0

類似のピクセルが塗りつぶしの色に変更されず、既存の色、領域の前の色、塗りつぶしの色の加重平均になるように、アルファの枠線を作成しようとしていますか? –

+0

ボーダーに沿っていくつかのアンチエイリアス処理をしたいと思うようです。私は、RGBが適切な空間ではないと思っています。これはかなり奇妙な結果を招きます。代わりにHSVを使用して調べることができます。 –

+0

Peter Taylor - その特定の戦略は私には起こりませんでしたが、私はそれを試してみたいと思うかもしれません。ありがとうございました。 ジム・ミッシェル - 私はそれをHSVに翻訳することができましたが、後で何をするのか分かりません。うまくいけば、隣接する領域の塗りつぶしを減らすことができますが、さまざまな距離メトリックを使用しても、私が持っている重いアルファベットの境界線を削除するのには不安です(RGBの0xFFFFFFから0x808080〜0x000000、塗りつぶしの後に醜い灰色の境界を残す)。私はその大きな値の違いを無視することはできません。しかし、提案をありがとう。 – Edward

答えて

0

天然思われる:D = SQRT(R^2 + G^2 + B^2)

そして(色空間において)元の画素からの最大距離を指定公差パラメータを定義します検査ピクセルは、可能である。その値より大きい場合は、そのピクセルから外側に溢れないでください。

希望の効果が得られるまで、許容範囲を0からSqrt(255^2 + 255^2 + 255^2)に調整します。

0

おそらく、原点ピクセルではなくローカルピクセルの品質を試すことができます。あなたは異方性拡散フィルターのような効果を与えることができます。現在のピクセル(塗りつぶし内)と隣接ピクセルの間の勾配が十分に低い場合、近隣をエンキューします。

0

許容値は、単一の数値ではなく、範囲で設定する必要があります。 20%から50%にすると、色の差が20%の場合、このピクセルの色が完全に変更されます。それが50%を超える場合は、このピクセルを塗りつぶさないでください。差が20%から50%の範囲にあるときは、(d-t_min)/(t_max-t_min)の比率で古い色を新しい色とブレンドします。ここでdは色差であり、t_maxは許容範囲です(0 ... 1で表される)。 このようなアルゴリズムはこれまで実装されていませんでした。多分私はそれを発明しただけかもしれない。

関連する問題