Effizientes zufälliges Zuschneiden von Bildern mit mehreren Numpy-Slices
Bei einem 4-D-Numpy-Array, das Farbbilder darstellt, besteht das Ziel darin, effizient zufällige Bilder auszuwählen 16x16 Ausschnitte von jedem Bild, mit eindeutigen Ausschnittpositionen für jedes Bild.
Ein naiver Ansatz mit einer for-Schleife verursacht unnötigen Speicheraufwand und Rechenaufwand. Um diesen Prozess zu optimieren, nutzen wir die Methode np.lib.stride_tricks.as_strided oder die Funktion view_as_windows des scikit-images.
Verwendung von view_as_windows
Die Funktion view_as_windows erstellt überlappende Fenster innerhalb eines Eingabearrays, wodurch effektiv Ansichten der Originaldaten ohne zusätzliche Speicherzuweisung erstellt werden. Durch Angabe einer Fensterform von (1, 16, 16, 1) erstellen wir Schiebefenster entlang der zweiten und dritten Achse (Breite und Höhe) mit einer Schrittgröße von 1.
Um die spezifischen Fenster basierend zu indizieren Bei zufälligen Offset-Paaren (x, y) verwenden wir die folgenden Schritte:
Diese Methode bietet einen effizienten Ansatz zum Zuschneiden mehrerer Bilder mit unterschiedlichen Offsets und reduziert so den Speicheraufwand und Rechenzeit im Vergleich zum iterativen Ansatz.
Das obige ist der detaillierte Inhalt vonWie kann man mit Numpy Slices zufällige 16x16-Patches aus mehreren Bildern effizient zuschneiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!