首頁  >  文章  >  後端開發  >  Numpy Slices 可以用於高效的隨機影像裁剪嗎?

Numpy Slices 可以用於高效的隨機影像裁剪嗎?

Susan Sarandon
Susan Sarandon原創
2024-11-03 21:02:03330瀏覽

Can Numpy Slices Be Used for Efficient Random Image Cropping?

使用Numpy 切片進行高效圖像裁剪

為了尋求一種使用Numpy 切片裁剪圖像的優化方法,一位用戶質疑了跨步的可行性-基於單次產生隨機裁剪的方法。

基於步幅的補丁提取

回應建議利用 np.lib.stride_tricks.as_strided 或 scikit-image 的 view_as_windows用於建立輸入數組的滑動視窗視圖。此方法可保持記憶體效率,且不會產生任何額外開銷。

View_as_Windows 說明

view_as_windows 允許使用者指定一個 window_shape 參數,表示沿每個維度的滑動視窗大小輸入數組。不用於切片的軸接收值 1。切片後,產生的陣列包含與這 1 個值相對應的單一維度(長度 1)的視圖。

解決方案

建議的解決方案包括利用view_as_windows 提取滑動窗口,然後根據隨機生成的偏移量對這些窗口進行索引:

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

這種方法可以有效地裁剪每個圖像具有不同隨機偏移量的圖像,從而無需for 循環。

以上是Numpy Slices 可以用於高效的隨機影像裁剪嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn