尝试使用numpy.rot90或skimage.transform.rotate旋转我的肺CT三维扫描图像,这些图像只包含感兴趣的肺区域,意味着它包含一些背景为黑色的白点,旋转如下所示:
#skimage rotation
rot_img = skimage.transform.rotate(reg_intereset_np_arr1, angle=90, mode='reflect')
#numpy rotation
rot_img = np.rot90(reg_intereset_np_arr1, k=2)
rot_img = np.flipud(reg_intereset_np_arr1)
# reg_intereset_np_arr1 is 3d image (3d scan)我的问题是,每一种方法都反转点和背景色,使图像白色背景与黑点。


旋转不仅是颠倒黑白的,倒转图像的内容也与原来的图像不一样,请告诉我如何解决这个问题?
发布于 2018-11-14 07:40:35
问题是两个部分,part1是白色和黑色的倒置,由上面的答案来解决,第二部分是内容的改变,解决的是:图像是三维的,我试着像问题中看到的那样,用数字或幻灯片图像来旋转3d图像,这也改变了图像的内容,但在那之后,我意识到3d图像不能像这样旋转,所以我旋转了3d图像的2d切片,解决了改变内容的问题。
# instead of
rot_img = np.rot90(reg_intereset_np_arr1, k=2) #`reg_intereset_np_arr1` is the 3d image
# the 3d image has 194 slices (2d images)
# and I use
rot_img = np.rot90(reg_intereset_np_arr1[40], k=2) # 40 is one of the 2d images.发布于 2018-11-14 06:49:24
您可以使用rot_img = np.invert(rot_img)将白色转换为黑色,反之亦然。如果您的图像是1和0 (换句话说,以布尔格式),那么您可以简单地使用rot_img = ~rot_img来反演它。
https://stackoverflow.com/questions/53294426
复制相似问题