首页  >  文章  >  后端开发  >  Numpy Slices 可以用于高效的随机图像裁剪吗?

Numpy Slices 可以用于高效的随机图像裁剪吗?

Susan Sarandon
Susan Sarandon原创
2024-11-03 21:02:03324浏览

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