2015-12-03 129 views
1

我学习图像卷积,以处理边缘的扩展来看,我想重复第一个和最后一个行/原始数组(中心)的列是这样的:创建numpy的阵列

1 1 2 3 3 
1 [1 2 3] 3 
4 [4 5 6] 6 
7 [7 8 9] 9 
7 7 8 9 9 

(在角的值对应于所述对角元素。)

我将遍历原始阵列的每个像素,并使用上面的阵列,以提取它的3×3的邻居。所以这里是我的问题:是否有可能生成对应于此数组的视图,以便我不需要在内存中存储新的(n + 2)x(m + 2)数组?

回答

1

没有办法做到这一点,因为没有办法让步伐工作。对于没有查看的解决方案,numpy.pad可以完成这项工作。您正在使用的信号处理例程也可以让您指定填充类型。

+0

感谢您的快速回答!我知道'scipy.signals.convolve2d'和它的“边界”参数,但我需要自己编写它。我将使用'numpy.pad',如果内存成为问题,我将在我的循环中手动处理边缘。 – John