[scikit-image] 11. 画像の凸包(morphology.convex_hull_image)

python

はじめに

skimage.morphology の convex_hull_image による画像の凸包について説明する。

コード

解説

この例では、2値化画像の凸包を求める。凸包は、入力内のすべての白いピクセルを囲む最小の凸多角形となる。

凸包 - Wikipedia

モジュールのインポート

データの読み込み

画像をimread()で読み込んで、 > 0とすることで、bool値配列に変換する。画像は下記サイトから取得した。

Cactus icon 3 | アイコン素材ダウンロードサイト「icooon-mono」 | 商用利用可能なアイコン素材が無料(フリー)ダウンロードできるサイト
6000個以上のアイコン素材を無料でダウンロードできるサイト ICOOON MONO

凸包を求める

skimage.morphology の convex_hull_image(image)により、imageの凸包が求まる。

図の表示

凸包部分の可視化

img_as_floatでchullのTrueの部分が1になり、chull_diff[image] = 2でimageのTrue部分が2となるので、もとのimageの部分が2、凸包の部分が1の配列が得られる。
これを表示すると、上図のようにどの部分が凸包されたかがわかる。

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

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

参考

Convex Hull — skimage 0.22.0 documentation

コメント