[scikit-image] 23. 画像の細線化(morphology.skeletonize)

python

はじめに

ここでは、skimage.morphologyskeletonizeを用いた画像の細線化について説明する。

コード

コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)

解説

モジュールのインポート

画像データの読み込み

サボテンのアイコンを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]にスケルトン化した画像を表示している。スケルトン化した画像は、その名の通りサボテンの骨格のような見た目となっている。

参考

Skeletonize — skimage v0.16.1 docs

コメント