Wolfram Language

Erweiterungen zu Wahrscheinlichkeit & Statistik

Bildsegmentierung mithilfe eines Gaußschen Mischmodells

Bilder werden als Arrays von Pixeln dargestellt. Ein Pixel ist ein Skalar (oder Vektor), der die Intensität (oder Farbe) angibt. Ein Gaußsches Mischmodell kann verwendet werden, um Pixel zur weiteren Analyse in ähnliche Segmente zusammenzufassen.

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

Visualisieren Sie die Verteilung von Pixelwerten.

Den kompletten Wolfram Language-Input zeigen
In[3]:=
Click for copyable input
Histogram[pixels, ImageSize -> Medium, PlotTheme -> "Detailed"]
Out[3]=

Passen Sie die Pixelwerte an ein Gaußsches Mischmodell mit drei Komponenten an.

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

Beschriften Sie jedes Pixel mit der wahrscheinlichsten Komponente unter Verwendung des Maximum-a-posteriori-Schätzverfahrens.

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]];

Visualisieren Sie das segmentierte Bild und vergleichen Sie es mit dem Original.

Den kompletten Wolfram Language-Input zeigen
In[6]:=
Click for copyable input
GraphicsRow[{Image[0.5 (labels - 1)], pic}, ImageSize -> Large]
Out[6]=

Verwandte Beispiele

en es fr ja ko pt-br ru zh