文章目录
总结:
-
物理空间上的图像有以下属性:
- Origin:原点
- Size:大小–每一维度的像素数
- Spacing:像素之间的实际距离(nm、mm、km)
- Direction cosine matrix:物理空间上的轴线方向
这些属性是图像的元数据(meta-data)。从图像索引计算物理坐标需要所有四个组件。
-
图像可以包含元数据字典(meta-data)。这种补充信息通常包括图像模态(如CT)、患者姓名和与图像采集有关的信息。
-
图像初始化: 用户指定的像素类型,用户指定的维度(2,3),原点为零,所有维度的单位间距和单位方向余弦矩阵,强度设置为零。
-
Data transfer to/from numpy: GetArrayFromImage(copy),GetArrayViewFromImage(immutable),GetImageFromArray (copy) +set the meta-data yourself.
-
resampling导致全黑图像的一个常见问题是由于(a)对期望输出图像的空间域(元数据)的不正确规范;或者(b)使用从输出空间域到重新采样图像的转换映射的逆。
1. 物理空间上的图像
2. 像素值类型
像素类型表示为枚举类型,如下表:
3. 图像制造
制作一张图片,要求具备以下元素:
Pixel type | Size | Origin | Spacing | Direction matrix |
---|
例如:
image_3D = sitk.Image(256,128,64,sitk.sitkInt16)
4. 基础图像属性命令(Meta-Data)
你可以改变图像的原点,间距和方向。应该谨慎地对已经包含数据的图像进行此类更改。
5. 访问像素和切片
访问像素或者改变像素值可以使用GetPixel和SetPixel函数,访问切片可以使用python的切片操作符。访问函数和图像切片操作符的顺序为[x,y,z]。
6. 图像操作
SimpleITK支持图像之间的基本算术操作,同时考虑到元数据。图像必须在物理上(逐像素)重叠。
物理属性(元数据值)需要多接近才能被认为是等价的?
还支持比较运算符(>,>=,<,<=,==),用于返回二进制图像。
7. SimpleITK、Numpy的索引区别
SimpleITK和numpy对应的索引下标是相反的!
SimpleITK: image[x,y,z] |
---|
numpy: image_numpy_array[z,y,x] |
8. SimpleITK2Numpy和Numpy2SimpleITK
- GetImageFromArray(): 返回图像数据的副本。然后,你可以自由地修改数据,因为它对原始的SimpleITK图像没有影响。
- GetArrayViewFromImage():返回对以内存有效方式显示有用的图像数据的视图。如果原始SimpleITK图像被删除,你将无法修改数据,视图将无效。
- GetImageFromArray():返回