用法:
skimage.util.view_as_windows(arr_in, window_shape, step=1)
输入 n 维数组的滚动窗口视图。
窗口是输入数组的重叠视图,相邻窗口移动单行或列(或更高维度的索引)。
- arr_in:ndarray
N-d 输入数组。
- window_shape:长度为 arr_in.ndim 的整数或元组
定义滚动窗口视图的基本 n 维正交表(更好地称为超矩形[1])的形状。如果给定一个整数,则形状将是由其值给出的边长超立方体。
- step:长度为 arr_in.ndim 的整数或元组
指示应执行提取的步长。如果给定整数,则步长在所有维度上都是一致的。
- arr_out:ndarray
输入数组的(滚动)窗口视图。
参数:
返回:
注意:
在内存使用方面,应该非常小心滚动视图。实际上,尽管 ‘view’ 与其基本数组具有相同的内存占用,但在计算中使用此 ‘view’ 时出现的实际数组通常比原始数组(大得多),尤其是对于二维数组以上。
例如,让我们考虑一个大小为 (100, 100, 100) 的
float64
的 3 维数组。该数组大约需要 8*100**3 字节的存储空间,即 8 MB。如果一个人决定在这个阵列上构建一个带有 (3, 3, 3) 窗口的滚动视图,则滚动视图的假设大小(例如,如果要重塑视图)将是 8*(100-3+1 )**3*3**3 大约 203 MB!随着输入数组的维度变大,缩放变得更糟。参考:
例子:
>>> import numpy as np >>> from skimage.util.shape import view_as_windows >>> A = np.arange(4*4).reshape(4,4) >>> A array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15]]) >>> window_shape = (2, 2) >>> B = view_as_windows(A, window_shape) >>> B[0, 0] array([[0, 1], [4, 5]]) >>> B[0, 1] array([[1, 2], [5, 6]])
>>> A = np.arange(10) >>> A array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> window_shape = (3,) >>> B = view_as_windows(A, window_shape) >>> B.shape (8, 3) >>> B array([[0, 1, 2], [1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8], [7, 8, 9]])
>>> A = np.arange(5*4).reshape(5, 4) >>> A array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15], [16, 17, 18, 19]]) >>> window_shape = (4, 3) >>> B = view_as_windows(A, window_shape) >>> B.shape (2, 2, 4, 3) >>> B array([[[[ 0, 1, 2], [ 4, 5, 6], [ 8, 9, 10], [12, 13, 14]], [[ 1, 2, 3], [ 5, 6, 7], [ 9, 10, 11], [13, 14, 15]]], [[[ 4, 5, 6], [ 8, 9, 10], [12, 13, 14], [16, 17, 18]], [[ 5, 6, 7], [ 9, 10, 11], [13, 14, 15], [17, 18, 19]]]])
相关用法
- Python skimage.util.view_as_blocks用法及代码示例
- Python skimage.util.montage用法及代码示例
- Python skimage.util.regular_grid用法及代码示例
- Python skimage.util.label_points用法及代码示例
- Python skimage.util.regular_seeds用法及代码示例
- Python skimage.util.unique_rows用法及代码示例
- Python skimage.util.invert用法及代码示例
- Python skimage.feature.graycomatrix用法及代码示例
- Python skimage.color.lab2lch用法及代码示例
- Python skimage.draw.random_shapes用法及代码示例
- Python skimage.feature.blob_doh用法及代码示例
- Python skimage.feature.blob_dog用法及代码示例
- Python skimage.filters.unsharp_mask用法及代码示例
- Python skimage.registration.optical_flow_tvl1用法及代码示例
- Python skimage.filters.rank.noise_filter用法及代码示例
- Python skimage.exposure.histogram用法及代码示例
- Python skimage.filters.gaussian用法及代码示例
- Python skimage.feature.graycoprops用法及代码示例
- Python skimage.segmentation.active_contour用法及代码示例
- Python skimage.feature.corner_orientations用法及代码示例
注:本文由纯净天空筛选整理自scikit-image.org大神的英文原创作品 skimage.util.view_as_windows。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。