はじめに
ここでは、skimage.morphology の skeletonizeを用いた画像の細線化について説明する。
コード

解説
モジュールのインポート
画像データの読み込み
サボテンのアイコンをplt.imread()で読み込む。PNG形式なのでRGBαの次元があるが、Rのみをスライスする。
image[image>0]=1により、0より大きいものを1として、0と1で構成されたデータとする。
スケルトン化による細線化
imageはバイナリイメージである必要がある。これにより、バイナリイメージ内の各連結成分は1ピクセル幅に縮小される。
結果の表示
図をImageGridにより表示する。ImageGridは下記で解説した。

[matplotlib] 19. mpl_toolkits.axes_grid1 の使い方(画像の表示)
axes_grid1のImageGridを用いて複数の画像を表示する方法
左のgrid[0]にオリジナル画像、右のgrid[1]にスケルトン化した画像を表示している。スケルトン化した画像は、その名の通りサボテンの骨格のような見た目となっている。
細線化の例

3次元オブジェクトの細線化
skimage.morphology の skeletonizeでは3次元オブジェクトの細線化もできる。詳細は下記記事を参照願います。

[scikit-image] 82. 3次元オブジェクトの細線化(skimage.morphology.skeletonize)
skimage.morphologyのskeletonizeで、ボクセルグラフで表示した3次元オブジェクトを細線化する方法について説明する。
参考
Skeletonize — skimage 0.25.1 documentation

袋入りのあんこのイラスト(つぶあん)
いらすとやは季節のイベント・動物・子供などのかわいいイラストが沢山見つかるフリー素材サイトです。
コメント