从numpy数组

时间:2018-06-11 16:06:06

标签: python arrays numpy image-processing

在三维numpy数组[row x col x ch]中,用NaNs填充,例如,

>>> a = np.ones((5, 5, 3))
>>> a[0, :, 0] = np.nan
>>> a[:, 0:2, :] = np.nan
>>> a[4, 4, 0] = np.nan

>>> a[:, :, 0]
array([[nan, nan, nan, nan, nan],
       [nan, nan,  1.,  1.,  1.],
       [nan, nan,  1.,  1.,  1.],
       [nan, nan,  1.,  1.,  1.],
       [nan, nan,  1.,  1., nan]])
>>> a.shape
(5, 5, 3)

如何在边框的任何通道中裁剪包含NaN的所有行和列?

在我的例子中,我想要的结果是一个数组

>>> a_cropped[:, :, 0]
array([[1., 1.],
       [1., 1.],
       [1., 1.]])
>>> a_cropped.shape
(3, 2, 3)

这与this question有关。但是,我完全没有中心的矩形区域,可以毫不含糊地提取出来。

我假设我首先必须一个接一个地剥去边界的行和列,以便不删除"有效"领域

上下文:旋转图像并移除有效图像区域外的NaN填充区域,如下图所示为黑色像素。 Rotated image

0 个答案:

没有答案