如何解决了解 skimage.view_in_windows 的形状
在 rgb 图像 view_in_windows
上应用 skimage
中的 (221,95,3)
后,我只剩下 output
形状的 (217,91,1,5,3)
。
我假设 output.shape[3]
和 output.shape[4]
是窗口的高度和宽度,而 output.shape[5]
是原始通道的数量。
谁能解释一下 output.shape
中的前两个数字是什么,以及我如何能够获得对应于 (No. windows,height,width,No. channels)
的形状,因为我的任务与为图像分类准备输入有关。
到目前为止我所拥有的:
step = 1
window = 5
output = view_as_windows(input_image,(window,window,3),step=step)```
解决方法
前两个数字是沿图像高度和宽度的窗口数。因为窗口具有形状 (5,5),所以不能沿行放置 221 个窗口,只能放置 217 个。列也是如此。
作为一维模拟,如果你有 np.arange(4)
作为你的输入,并且你想要一个大小为 3 的滑动窗口,你只能适合两个窗口,(0,1,2) 和 (1,2,3).
您可以在开始时用 np.pad
填充图像以获得与像素相同数量的窗口,或者只是使用缩小的图像尺寸。
至于重塑,在这种情况下很容易:
step = 1
window = 5
window_shape = (window,window,3)
output_raw = view_as_windows(input_image,window_shape,step)
output = output.reshape((-1,) + window_shape)
但是请注意,虽然 output_raw
使用 numpy.lib.stride_tricks.as_strided
在零复制的情况下生成视图到数组中,但步幅技巧不能表示 em> output
(带重塑),因此您将创建一个 np.product(output_raw.shape)
元素数组,在本例中为 ~1.5M。这可能会很快失控。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。