识别具有自定义厚度的多维数组中的边框并将其设置为特定数字

时间:2019-05-02 09:54:33

标签: arrays python-2.7 multidimensional-array 3d numpy-ndarray

我有一个0-1 3D numpy数组(二进制图像),并且如果距边界特定距离之内,我想将边界体素设置为0。例如,如果distance = 5,则所有距图像边界<= 5的体素都将设置为0。

实际上,与此操作相反(此处为2D),其中仅将内部设置为0:https://www.w3resource.com/python-exercises/numpy/python-numpy-exercise-8.php

目前,我正在使用此代码在每个方向上运行此操作,但我想有一种更好的方法:

distance = 5

arr3D[:distance, :, :] = 0; arr3D[-distance:, :, :] = 0; #Z-direction
arr3D[:, :distance, :] = 0; arr3D[:, -distance:, :] = 0; #Y-direction
arr3D[:, :, :distance] = 0; arr3D[:, :, -distance:] = 0; #X-direction

谢谢

0 个答案:

没有答案