首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分配给SimpleITK中的索引图像

分配给SimpleITK中的索引图像
EN

Stack Overflow用户
提问于 2020-04-22 17:53:29
回答 1查看 433关注 0票数 1

在SimpleITK中向索引数组分配值或切片的最佳方法是什么?

示例(1):在3D卷中将2D片分配给索引的2D片

在NumPy中,我们可以对索引数组执行以下赋值:

代码语言:javascript
复制
import numpy as np
nda = np.ones((64, 256,256))
nda[0,:,:] = 2*nda[0,:,:]

在SimpleITK中同样的操作,

代码语言:javascript
复制
 import SimpleITK as sitk
 image = sitk.GetImageFromArray(nda)
 image[:,:,0] = 2*image[:,:,0]

给出以下错误:

代码语言:javascript
复制
IndexError                                Traceback (most recent call last)
<ipython-input-18-4649e90a4ea5> in <module>
----> 1 image[:,:,0] = 2*image[:,:,0]

~/anaconda3/lib/python3.7/site-packages/SimpleITK/SimpleITK.py in __setitem__(self, idx, value)
 4690 
 4691     # the index parameter was an invalid set of objects
-> 4692         raise IndexError("invalid index")
 4693 
 4694 

IndexError: invalid index

示例(2):在3D卷中指定一个索引的2D片的值,NumPy中的以下操作,

代码语言:javascript
复制
  nda[0,:,:] = 2

N SimpleITK,

代码语言:javascript
复制
 image[:,:,0] = 2

提供与示例(1)相同的索引错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-22 18:29:26

不幸的是,您不能在SimpleITK中执行这种操作。赋值操作符的左侧必须是单个像素。不可能是一片。

要执行这些类型的操作,您必须从卷中提取一个切片,对该片进行操作,然后使用粘贴函数将切片粘贴回卷中。

您可以在我先前发布的答案中看到粘贴函数的一个示例:https://stackoverflow.com/a/32612215/3712577

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

https://stackoverflow.com/questions/61371841

复制
相关文章

相似问题

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