
50
3 章 ndimage を使った画像領域のネットワーク
if neighbor != center and not graph.has_edge(center, neighbor):
graph.add_edge(center, neighbor)
return 0.0
def build_rag(labels, image):
g = nx.Graph()
footprint = ndi.generate_binary_structure(labels.ndim, connectivity=1)
_ = ndi.generic_filter(labels, add_edge_filter, footprint=footprint,
mode='nearest', extra_arguments=(g,))
return g
■
本章では、いくつかの大事なことを取り上げます。画像を
NumPy
配列として表すこと、そのよ
うに表した画像を
scipy.ndimage
を使ってフィルタリングすること、そして
NetworkX
ライブラ
リを使って画像領域をグラフ(ネットワーク)として構築することです。では、順番に進めていき
ましょう。
3.1
画像は単なる
NumPy
配列
前章では、
NumPy
配列が表形式データを効率的に表せることと、そのデータを使った計算を行
うのに便利な手段であることを学びました。実は、配列というのは、画像を表現するのも得意なの
です。
以下に、ホワイトノイズの画像を
NumPy
だけを使って作成し ...