Wolfram言語

拡張された確率と統計の機能

ガウス混合モデルによる画像分割

画像は画素の配列として表わされる.画素は,強度(または色)を示すスカラー(またはベクトル)である.ガウス混合モデルは,画素を同じような切片に分割してさらに解析を行うために使われる.

In[1]:=
Click for copyable input
pic = ExampleData[{"TestImage", "Aerial"}]
Out[1]=
In[2]:=
Click for copyable input
pixels = Flatten[ImageData[pic]];

画素値の分布を可視化する.

完全なWolfram言語入力を表示する
In[3]:=
Click for copyable input
Histogram[pixels, ImageSize -> Medium, PlotTheme -> "Detailed"]
Out[3]=

画素値を3要素のガウス混合モデルにフィットする.

In[4]:=
Click for copyable input
gmm = Quiet@ EstimatedDistribution[pixels, MixtureDistribution[{p1, p2, p3}, {NormalDistribution[a1, a2], NormalDistribution[b1, b2], NormalDistribution[c1, c2]}]];

最も可能性のある要素を持つ各画素に最大事後確率(MAP)の推定値のラベルを付ける.

In[5]:=
Click for copyable input
pxi = Table[PDF[dist, pixels], {dist, Last[gmm]}]; pxi = Transpose[pxi]/Total[pxi First[gmm]]; labels = ArrayReshape[Ordering[#, -1] & /@ pxi, ImageDimensions[pic]];

分割された画像を可視化し,それをもとの画像と比べる.

完全なWolfram言語入力を表示する
In[6]:=
Click for copyable input
GraphicsRow[{Image[0.5 (labels - 1)], pic}, ImageSize -> Large]
Out[6]=

関連する例

de en es fr ko pt-br ru zh