用法:
cucim.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 cupy as cp >>> from cucim.skimage.util.shape import view_as_windows >>> A = cp.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 = cp.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 = cp.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 cucim.skimage.util.view_as_blocks用法及代码示例
- Python cucim.skimage.util.invert用法及代码示例
- Python cucim.skimage.feature.shape_index用法及代码示例
- Python cucim.skimage.restoration.richardson_lucy用法及代码示例
- Python cucim.skimage.data.binary_blobs用法及代码示例
- Python cucim.skimage.filters.roberts_neg_diag用法及代码示例
- Python cucim.skimage.color.lch2lab用法及代码示例
- Python cucim.skimage.measure.label用法及代码示例
- Python cucim.skimage.color.rgb2gray用法及代码示例
- Python cucim.skimage.filters.gabor用法及代码示例
- Python cucim.skimage.transform.rescale用法及代码示例
- Python cucim.skimage.filters.roberts_pos_diag用法及代码示例
- Python cucim.skimage.segmentation.random_walker用法及代码示例
- Python cucim.skimage.filters.roberts用法及代码示例
- Python cucim.skimage.morphology.dilation用法及代码示例
- Python cucim.skimage.feature.corner_foerstner用法及代码示例
- Python cucim.skimage.measure.moments_coords用法及代码示例
- Python cucim.skimage.filters.gabor_kernel用法及代码示例
- Python cucim.skimage.color.hsv2rgb用法及代码示例
- Python cucim.skimage.morphology.closing用法及代码示例
注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cucim.skimage.util.view_as_windows。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。