Hauptinhalt

Die Übersetzung dieser Seite ist veraltet. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

augment

Anwenden identischer zufälliger Transformationen auf mehrere Bilder

Beschreibung

augI = augment(augmenter,I) erweitert das Bild I mit einer zufälligen Transformation aus der Reihe an Bild-Vorverarbeitungsoptionen, die vom Bilddaten-Augmenter augmenter festgelegt werden. Wenn I mehrere Bilder umfasst, wendet augment eine identische Transformation auf alle Bilder an.

Beispiel

Beispiele

alle reduzieren

Erstellen Sie einen Bild-Augmenter, der Bilder um einen zufälligen Winkel rotiert. Um einen benutzerdefinierten Bereich gültiger Rotationswinkel zu verwenden, können Sie einen Function Handle festlegen, wenn Sie den Augmenter erstellen. Dieses Beispiel legt eine Funktion namens myrange (am Ende des Beispiels definiert) fest, die einen Winkel aus zwei disjunkten Intervallen auswählt.

imageAugmenter = imageDataAugmenter('RandRotation',@myrange);

Laden Sie mehre Bilder in den Workspace und zeigen Sie die Bilder an.

img1 = imread('peppers.png');
img2 = imread('corn.tif',2);
inImg = imtile({img1,img2});
imshow(inImg)

Figure contains an axes object. The hidden axes object contains an object of type image.

Erweitern Sie die Bilder mit identischen Augmentationen. Der zufällig ausgewählte Rotationswinkel wird in einer temporären Variable angle ausgegeben.

outCellArray = augment(imageAugmenter,{img1,img2});
angle = 
8.1158

Zeigen Sie die erweiterten Bilder an.

outImg = imtile(outCellArray);
imshow(outImg);

Figure contains an axes object. The hidden axes object contains an object of type image.

Unterstützungsfunktion

Dieses Beispiel legt die myrange-Funktion fest, die zunächst zufällig eines von zwei Intervallen (-10, 10) und (170, 190) mit gleicher Wahrscheinlichkeit auswählt. Aus dem ausgewählten Intervall gibt die Funktion eine einzige Zufallszahl mit Gleichverteilung aus.

function angle = myrange()
    if randi([0 1],1)
        a = -10;
        b = 10;
    else
        a = 170;
        b = 190;
    end
    angle = a + (b-a).*rand(1)
end

Eingabeargumente

alle reduzieren

Erweiterungsoptionen, angegeben als ein imageDataAugmenter-Objekt.

Zu erweiternde Bilder, angegeben als eine der folgenden Optionen.

  • Numerisches Array, das ein einziges Graustufen- oder Farbbild darstellt.

  • Zellen-Array aus numerischen und kategorischen Bildern. Die Bilder können unterschiedliche Größen und Typen aufweisen.

Ausgangsargumente

alle reduzieren

Erweiterte Bilder, ausgegeben als numerisches Array oder Zellen-Array aus numerischen und kategorischen Bildern, konsistent mit dem Format der Eingangsbilder I.

Tipps

  • Mit der augment-Funktion können Sie eine Vorschau auf die Transformationen, die auf die Beispielbilder angewendet werden, erhalten.

  • Um während des Trainings eine Bilderweiterung durchzuführen, erstellen Sie ein augmentedImageDatastore und geben Sie die Vorverarbeitungsoptionen an, indem Sie das Namen-Wert-Paar 'DataAugmentation' zusammen mit einem imageDataAugmenter verwenden. Der erweiterte Bild-Datastore wendet automatisch zufällige Transformationen auf die Trainingsdaten an.

Versionsverlauf

Eingeführt in R2018b