Сегментация изображения на основе смешанных Гауссовых моделей
Изображения представлены в виде массивов пикселей. Отдельно взятый пиксель представляет собой скаляр (или вектор), который показывает интенсивность (или цвет). Смешанная Гауссова модель может быть использована для разделения пикселей на аналогичные сегменты для дальнейшего анализа изображения.
In[1]:=

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

In[2]:=

pixels = Flatten[ImageData[pic]];
Визуализация распределения значений пикселей.
код на языке Wolfram Language целиком
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 Language целиком
Out[6]=
