I have an image file containing a 4d array of MR image in the shape (240,240,155,4) and I want to crop it to the non zero values.
I tried this code:
def crop_image_only_outside(img,tol=0):
# tol is tolerance
mask = img>tol
mask = mask.all(3)
print(mask.shape)
m,n,s = mask.shape
mask0,mask1,mask2 = mask.any(0),mask.any(1),mask.any(2)
col_start,col_end = mask0.argmax(),n-mask0[::-1].argmax()
row_start,row_end = mask1.argmax(),m-mask1[::-1].argmax()
s_start,s_end = mask2.argmax(),s-mask2[::-1].argmax()
return img[row_start:row_end,col_start:col_end,s_start:s_end]
but results gives me: TypeError: Invalid shape (0, 0, 0, 4) for image data
hint: I'm working on brats dataset