Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Memangkas Tampalan Imej Rawak dengan Cekap daripada Array Numpy 4D menggunakan Penghirisan Berasaskan Berjalur?

Bagaimana untuk Memangkas Tampalan Imej Rawak dengan Cekap daripada Array Numpy 4D menggunakan Penghirisan Berasaskan Berjalur?

Susan Sarandon
Lepaskan: 2024-11-03 14:05:03
asal
308 orang telah melayarinya

How to Efficiently Crop Random Image Patches from a 4D Numpy Array using Strided-Based Slicing?

Penghirisan Numpy yang Cekap untuk Pemotongan Imej Rawak

Untuk pemangkasan tompok 16x16 rawak yang cekap daripada tatasusunan Numpy 4D yang mewakili imej berbilang warna (di mana dimensi pertama ialah bilangan imej, dan yang kedua dan ketiga ialah lebar dan tinggi yang sama), pendekatan berasaskan langkah boleh digunakan.

Menggunakan np.lib.stride_tricks.as_strided atau scikit- image's view_as_windows

Kaedah ini mencipta tetingkap gelongsor sebagai pandangan ke dalam tatasusunan input, mengurangkan overhed memori. Scikit-image's view_as_windows memudahkan persediaan dengan menentukan bentuk tetingkap sebagai tuple yang elemennya sepadan dengan dimensi tatasusunan input. Paksi untuk gelongsor ditetapkan panjang tetingkap dan paksi lain ditetapkan kepada 1.

Contoh Kod

<code class="python"># Import scikit-image for view_as_windows
from skimage.util.shape import view_as_windows

# Get sliding windows
w = view_as_windows(X, (1,16,16,1))[...,0,:,:,0]

# Generate random per-image offsets
x = np.random.randint(0,12,X.shape[0])
y = np.random.randint(0,12,X.shape[0])

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

# Reformat if necessary
out = out.transpose(0,2,3,1)</code>
Salin selepas log masuk

Kod ini menjana empat pasangan rawak (x_offset, y_offset) dan mengekstrak 4 tampalan rawak 16x16 dalam parameter yang diberikan, dengan overhed memori minimum.

Atas ialah kandungan terperinci Bagaimana untuk Memangkas Tampalan Imej Rawak dengan Cekap daripada Array Numpy 4D menggunakan Penghirisan Berasaskan Berjalur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan