我有一个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
谢谢