首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SimpleITK选择性改变像素/切片

SimpleITK选择性改变像素/切片
EN

Stack Overflow用户
提问于 2017-03-07 22:40:52
回答 2查看 453关注 0票数 1

我已经把CT扫描加载到SimpleITK了。我想做一些在NumPy中非常简单的事情,但还没有想好如何在SimpleITK中做到这一点。为了提高速度,我想用SimpleITK来完成它们。

代码语言:javascript
复制
# NumPy: Changes all values of 100 to now become 500
nparr = nparr[nparr == 100] = 500

# SimpleITK:
???

SimpleITK image==100将生成相同尺寸的二进制图像,其中所有intensities==100都为1/True。这是我们想要的。但不幸的是,我不相信SimpleITK支持布尔索引。实现这一目标的最有效方法是什么?

我想出了这个看起来很时髦的东西;但我希望找到实现这一点的预期方法/最佳实践手段:

代码语言:javascript
复制
# Cast because data type returned is uint8 otherwise
difference = 500 - 100
offset = SimpleITK.Cast( image == 100), sitk.sitkInt32 ) * difference
image += offset
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-03 03:40:25

您可以使用BinaryTheshold过滤器。

结果= sitk.BinaryThreshold(图像,100,101,500,0)

这应该只选择强度为100的像素。

票数 2
EN

Stack Overflow用户

发布于 2017-04-05 02:07:51

您正在使用SimpleITK图像对象,要以numpy样式使用它,您需要使用GetArrayFromImageGetImageFromArray方法,然后通过将imagedata转换为numpy数组来获取像素访问。

代码语言:javascript
复制
import SimpleITK as sitk

difference = 500 - 100
img_arr = sitk.GetArrayFromImage(image)
offset =  img_arr[img_arr == 100] * difference
output = sitk.GetImageFromArray(image += offset)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42651105

复制
相关文章

相似问题

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