Wolfram Language

Probabilidad y estadística extendidas

Segmentación de imágenes con un modelo mixto gaussiano

Las imágenes son representadas como arreglos de píxeles. Un pixel es un escalar (o vector) que muestra la intensidad (o color). Un modelo mixto gaussiano puede ser utilizado para dividir píxeles en segmentos similares para su posterior análisis.

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

Visualice la distribución de valores de píxeles.

muestre la entrada completa de Wolfram Language
In[3]:=
Click for copyable input
Histogram[pixels, ImageSize -> Medium, PlotTheme -> "Detailed"]
Out[3]=

Encaje los valores de píxeles en un modelo mixto gaussiano de tres componentes.

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

Etiquete cada pixel con el componente más probable con un máximo de un estimado de probabilidad a posteriori (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]];

Visualice la imagen segmentada y compárela con la original.

muestre la entrada completa de Wolfram Language
In[6]:=
Click for copyable input
GraphicsRow[{Image[0.5 (labels - 1)], pic}, ImageSize -> Large]
Out[6]=

Ejemplos relacionados

de en fr ja ko pt-br ru zh