質問

次の効果をプログラムで再現する方法を探しています:

入力画像を与える:
入力http://www.shiny.co.il/shooshx/ConeCarv/q_input .png

「ストローク」を繰り返し適用したい効果。
最初のステップは次のようになります。
ステップ1 http://www.shiny.co.il/shooshx/ConeCarv/ q_step1.png

このような2番目のステップ:
代替テキストhttp://www.shiny.co.il/shooshx/ConeCarv/ q_step2.png

など。

これには何らかのエッジ検出が含まれ、その後何らかの方法でエッジをトレースすると思われます。
効率的かつ堅牢な方法でこれを行うための既知のアルゴリズムはありますか?

役に立ちましたか?

解決

基本的に、カスタムアルゴリズムは、 thisに従ってスレッド

  

ピクセルの周囲に3x3の近傍を取り、アルファチャネルのしきい値を設定し、ピクセルの周囲の8ピクセルのいずれかが異なるアルファ値を持っているかどうかを確認します。もしそうならペイント   ピクセルを中心とする特定の半径の円。内側/外側で行うには、しきい値のアルファチャネルで変調します(反対側を行うには否定します)。円の半径がピクセル(おそらくそうです)よりも大きい場合、より大きな近傍をしきい値処理する必要があります。


  

これは、グレースケールの形態学的操作を使用して実装されます。これは、選択の展開/縮小に使用されるのと同じ手法でもあります。基本的に、選択範囲(またはアルファチャンネル)の中央をストロークするには、最初に選択範囲の2つのコピーを作成します。最初の選択はストロークの半径によって拡張され、2番目の選択は縮小されます。ストロークの不透明度は、最初の選択から2番目の選択を差し引くことで得られます。

     

内側と外側のストロークを行うには、半径の2倍だけ縮小/拡大し、元の選択範囲と交差する部分を減算します。

     

最も一般的な形態学的アルゴリズムはO(m * n)操作を必要とすることに注意する必要があります。ここで、mは画像のピクセル数、nは「構造化要素」の要素数です。ただし、特定の特殊なケースでは、これをO(m)操作に最適化できます(たとえば、構造化要素が長方形または菱形の場合)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top