高斯混合模型的图像分割
图像可被表示为像素列阵. 每个像素为一个标量(或向量)显示强度(或颜色). 高斯混合模型可用于将像素分割为相似片段用来进行进一步的分析.
In[1]:=

pic = ExampleData[{"TestImage", "Aerial"}]
Out[1]=

In[2]:=

pixels = Flatten[ImageData[pic]];
可视化像素值的分布.
显示完整的 Wolfram 语言输入
Out[3]=

将像素值拟合于三分量高斯混合模型.
In[4]:=

gmm = Quiet@
EstimatedDistribution[pixels,
MixtureDistribution[{p1, p2, p3}, {NormalDistribution[a1, a2],
NormalDistribution[b1, b2], NormalDistribution[c1, c2]}]];
以极大后验概率(MAP)估计,用最概然分量标注每个像素.
In[5]:=

pxi = Table[PDF[dist, pixels], {dist, Last[gmm]}];
pxi = Transpose[pxi]/Total[pxi First[gmm]];
labels = ArrayReshape[Ordering[#, -1] & /@ pxi, ImageDimensions[pic]];
可视化分割的图像并与原图进行对比.
显示完整的 Wolfram 语言输入
Out[6]=
