はじめに
ここでは、skimage.morphology の skeletonizeを用いた画像の細線化について説明する。
コード
![](https://sabopy.com/wp/wp-content/uploads/2019/11/skeleton_cactus.png)
解説
モジュールのインポート
画像データの読み込み
サボテンのアイコンをplt.imread()で読み込む。PNG形式なのでRGBαの次元があるが、Rのみをスライスする。
image[image>0]=1により、0より大きいものを1として、0と1で構成されたデータとする。
スケルトン化による細線化
imageはバイナリイメージである必要がある。これにより、バイナリイメージ内の各連結成分は1ピクセル幅に縮小される。
結果の表示
図をImageGridにより表示する。ImageGridは下記で解説した。
![](https://sabopy.com/wp/wp-content/uploads/2019/03/Simple_Axesgrid1-160x90.png)
[matplotlib] 19. mpl_toolkits.axes_grid1 の使い方(画像の表示)
axes_grid1のImageGridを用いて複数の画像を表示する方法
左のgrid[0]にオリジナル画像、右のgrid[1]にスケルトン化した画像を表示している。スケルトン化した画像は、その名の通りサボテンの骨格のような見た目となっている。
細線化の例
![](https://sabopy.com/wp/wp-content/uploads/2020/02/skeleton_anko.jpg)
3次元オブジェクトの細線化
skimage.morphology の skeletonizeでは3次元オブジェクトの細線化もできる。詳細は下記記事を参照願います。
![](https://sabopy.com/wp/wp-content/uploads/2020/05/3d_skelton-160x90.jpg)
[scikit-image] 82. 3次元オブジェクトの細線化(skimage.morphology.skeletonize)
skimage.morphologyのskeletonizeで、ボクセルグラフで表示した3次元オブジェクトを細線化する方法について説明する。
参考
Skeletonize — skimage 0.24.0 documentation
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiLsn__2TDMNEGrnfjSTtnyiIFkGD0qKqw1oNSp0Imj5K8mPFGoCcUvEi4SdiF8nSvmIT19PORZWHfD_esIrK3SGdMdk_9pB6avewr0Sxe-3cFP88VRmknOEGH7NVqFaWjMiSCpg8hkHwU/s400/sweets_anko_pack_tsubu.png)
袋入りのあんこのイラスト(つぶあん)
いらすとやは季節のイベント・動物・子供などのかわいいイラストが沢山見つかるフリー素材サイトです。
コメント