Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bolehkah Numpy Slices Digunakan untuk Pemotongan Imej Rawak yang Cekap?

Bolehkah Numpy Slices Digunakan untuk Pemotongan Imej Rawak yang Cekap?

Susan Sarandon
Susan Sarandonasal
2024-11-03 21:02:03324semak imbas

Can Numpy Slices Be Used for Efficient Random Image Cropping?

Pemotongan Imej Cekap dengan Kepingan Numpy

Mencari pendekatan yang dioptimumkan untuk memangkas imej menggunakan kepingan Numpy, seorang pengguna mempersoalkan kebolehlaksanaan langkah- kaedah berasaskan untuk menjana tanaman rawak dalam satu laluan.

Pengeluaran Tampalan berasaskan Stride

Respons mencadangkan memanfaatkan np.lib.stride_tricks.as_strided atau scikit-image's view_as_windows untuk mencipta paparan tetingkap gelongsor tatasusunan input. Kaedah ini mengekalkan kecekapan memori tanpa menanggung sebarang overhed tambahan.

View_as_Windows Explanation

view_as_windows membolehkan pengguna menentukan argumen window_shape, yang mewakili saiz tetingkap gelongsor di sepanjang setiap dimensi tatasusunan input. Paksi tidak bertujuan untuk menghiris menerima nilai 1. Selepas menghiris, tatasusunan yang terhasil mengandungi paparan dengan dimensi tunggal (panjang 1) sepadan dengan 1 nilai ini.

Penyelesaian

Penyelesaian yang dicadangkan melibatkan penggunaan view_as_windows untuk mengekstrak tetingkap gelongsor dan kemudian mengindeks ke dalam tetingkap ini berdasarkan offset yang dijana secara rawak:

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

Pendekatan ini membolehkan pemangkasan imej yang cekap dengan offset rawak yang berbeza untuk setiap imej, menghapuskan keperluan untuk a untuk gelung.

Atas ialah kandungan terperinci Bolehkah Numpy Slices Digunakan untuk Pemotongan Imej Rawak yang Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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