I have a binary array of size 64x64x64, where a volume of 40x40x40 is set to "1" and rest is "0". I have been trying to rotate this cube about its center around z-axis using skimage.transform.rotate and also Opencv as: def rotateImage(image, angle): row, col = image.shape center = tuple(np.array([row, col]) / 2) rot_mat = cv2.getRotationMatrix2D(center, angle, 1.0) new_image = cv2.warpAffine(image, rot_mat, (col, row)) return new_image In the case of openCV, I tried, 2D rotation of each idividual slices in a cube (Cube[:,:,n=1,2,3...p]). After rotating, total sum of the values in the array changes. This may be caused by interpolation during rotation. How can I rotate 3D array of this kind without adding anything to the array? Continue reading...