Heim  >  Artikel  >  Backend-Entwicklung  >  Können Numpy Slices zum effizienten zufälligen Zuschneiden von Bildern verwendet werden?

Können Numpy Slices zum effizienten zufälligen Zuschneiden von Bildern verwendet werden?

Susan Sarandon
Susan SarandonOriginal
2024-11-03 21:02:03324Durchsuche

Can Numpy Slices Be Used for Efficient Random Image Cropping?

Effizientes Bildzuschneiden mit Numpy-Slices

Auf der Suche nach einem optimierten Ansatz zum Zuschneiden von Bildern mit Numpy-Slices stellte ein Benutzer die Machbarkeit eines Schrittes in Frage. basierte Methode zum Generieren zufälliger Zuschnitte in einem einzigen Durchgang.

Stride-basierte Patch-Extraktion

Die Antwort schlägt die Nutzung von np.lib.stride_tricks.as_strided oder scikit-image's view_as_windows vor zum Erstellen einer Schiebefensteransicht des Eingabearrays. Diese Methode behält die Speichereffizienz bei, ohne dass zusätzlicher Overhead entsteht.

View_as_Windows Erklärung

view_as_windows ermöglicht Benutzern die Angabe eines window_shape-Arguments, das die Größe des Schiebefensters entlang jeder Dimension des darstellt Eingabearray. Achsen, die nicht für das Slicing vorgesehen sind, erhalten den Wert 1. Nach dem Slicing enthält das resultierende Array Ansichten mit Singleton-Dimensionen (Länge 1), die diesen 1-Werten entsprechen.

Lösung

Die vorgeschlagene Lösung beinhaltet die Verwendung von view_as_windows zum Extrahieren von Schiebefenstern und die anschließende Indizierung in diese Fenster basierend auf zufällig generierten Offsets:

<code class="python"># Get sliding windows
w = view_as_windows(X, (1, 16, 16, 1))[..., 0, :, :, 0]

# Index and get specific windows
out = w[np.arange(X.shape[0]), x, y]

# Reshape to match loopy code format (optional)
out = out.transpose(0, 2, 3, 1)</code>

Dieser Ansatz ermöglicht das effiziente Zuschneiden von Bildern mit eindeutigen zufälligen Offsets für jedes Bild, wodurch die Notwendigkeit entfällt eine for-Schleife.

Das obige ist der detaillierte Inhalt vonKönnen Numpy Slices zum effizienten zufälligen Zuschneiden von Bildern verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn