私はバイナリ イメージを持っています。簡単にするために、単純な直線であると仮定します。
00000000000000
00000000000000
00000000000000
11111111110000
00000000000000
00000000000000
00000000000000
2pxに拡張したい。
その目的のために、2回の反復で膨張を適用し、予想どおりこれを得ました:
00000000000000
11111111111100
11111111111100
11111111111100
11111111111100
11111111111100
00000000000000
次に、私の考えは、単純に間引きを適用して、最初の線を 2 ピクセル延長することでした。しかし、代わりに、おそらく線の太さが原因で、線が短くなりました。
00000000000000
10000000000000
10000000000000
11111111100000
10000000000000
10000000000000
00000000000000
次に、3x3 ones() の代わりにひし形の構造化フットプリントで膨張を適用することを考えましたが、結果はさらに悪くなり、ラインがもう 1 ピクセル短くなりました。
細線化にはZhang-Suen アルゴリズムとGuo-Hall アルゴリズムを使用し、さらに skimage で公開されている Otsu メソッドも試しましたが、同様の結果が得られました。
誰かが、私が向かった場所に到達できる間引きアルゴリズムの存在、または別のアプローチについて教えてもらえますか?
更新(@marinus コメントに対処するため):
前述のように、最初の行を 2px に拡張して次のように取得します。
00000000000000
00000000000000
00000000000000
11111111111100
00000000000000
00000000000000
00000000000000
間引きはこのように機能するように見えるため、間引きアプローチではできません。
したがって、最初の行を拡張するだけでは、間引きで拡張することはできません。