首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >3D图像旋转的方式是错误的,使用numpy或skimage。

3D图像旋转的方式是错误的,使用numpy或skimage。
EN

Stack Overflow用户
提问于 2018-11-14 06:40:04
回答 2查看 371关注 0票数 0

尝试使用numpy.rot90skimage.transform.rotate旋转我的肺CT三维扫描图像,这些图像只包含感兴趣的肺区域,意味着它包含一些背景为黑色的白点,旋转如下所示:

代码语言:javascript
复制
#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)

我的问题是,每一种方法都反转点和背景色,使图像白色背景与黑点。

旋转不仅是颠倒黑白的,倒转图像的内容也与原来的图像不一样,请告诉我如何解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-14 07:40:35

问题是两个部分,part1是白色和黑色的倒置,由上面的答案来解决,第二部分是内容的改变,解决的是:图像是三维的,我试着像问题中看到的那样,用数字或幻灯片图像来旋转3d图像,这也改变了图像的内容,但在那之后,我意识到3d图像不能像这样旋转,所以我旋转了3d图像的2d切片,解决了改变内容的问题。

代码语言:javascript
复制
# 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.
票数 1
EN

Stack Overflow用户

发布于 2018-11-14 06:49:24

您可以使用rot_img = np.invert(rot_img)将白色转换为黑色,反之亦然。如果您的图像是10 (换句话说,以布尔格式),那么您可以简单地使用rot_img = ~rot_img来反演它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53294426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档