[scikit-image] 83. flood_fillによる特定の領域の塗りつぶし(skimage.segmentation.flood_fill)

python

はじめに

scikit-imageのsegmentationモジュールに含まれるflood_fill関数は、画像内の特定の領域を塗りつぶすための便利なツールです。本記事では、flood_fill関数の基本的な使い方から実践的な応用例まで、画像処理における領域塗りつぶしの手法について解説します。

コード

解説

モジュールのインポートなど

バージョン

画像の作成

im=im>0.1でバイナリ画像として、img_as_ubyteで0〜255のデータに変換しました。

特定の領域を塗りつぶし

flood_fill(im, (40, 80), 127)は、座標(y,x)=(40,80)に属する領域のすべての画素を値127に変更します。グレースケール画像では、この値は白と黒の中間の灰色になります。

結果の表示

左にオリジナル画像、右にflood_fill処理した画像を表示しています。右図では、flood_fillで指定したseed_pointの座標をシアン色の丸で示しています。

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

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

まとめ

skimage.segmentation.flood_fill関数を使うことで、画像内の特定の領域を効率的に塗りつぶすことができます。開始点(シード)を指定し、類似した色や値を持つ隣接ピクセルを新しい値で置き換える仕組みです。画像のセグメンテーション、オブジェクト抽出、領域マーキングなど、様々な画像処理タスクで活用できる重要な機能といえるでしょう。

参考

Flood Fill — skimage 0.26.0rc0.dev0 documentation
skimage.segmentation — skimage 0.26.0rc0.dev0 documentation
skimage.util — skimage 0.26.0rc0.dev0 documentation

コメント