切片提取
切片提取的关键是要给出ResliceAxes,实际上,它是一个4X4的矩阵。把这个矩阵看作是新坐标系在原坐标下的坐标表示,一个齐次坐标系。前三列分别表示新坐标系下x、y、z的向量坐标,第四列表示新坐标系下原点的坐标。需要注意到是x, y, z三个向量要符合右手法则
源码:
reslice = vtkImageReslice()
reslice.SetInputData(nrrdData)
reslice.SetResliceAxes(resliceAxes)
reslice.SetOutputExtent(extent)
reslice.SetOutputDimensionality(2)
reslice.SetInterpolationModeToLinear()
reslice.Update()
data = reslice.GetOutput()
cols, rows, levels = data.GetDimensions()
# print("维度:", cols, rows, levels)
# 获取vtkDataArray类型变量
sc = data.GetPointData().GetScalars()
# 转为ndarray类型一维向量
imageArr = numpy_support.vtk_to_numpy(sc)
# 转维三维数据
image3D = imageArr.reshape(levels, rows, cols)矩阵计算举例:
如图,我以0点作为新的坐标系原点,0->2方向为x轴,0->4为y轴,0->5为z轴建系。通过两点计算向量,需要转化成方向向量。

取两维,设置02,04点的长度维xy的长度(setOutputExtent),于是就得到了0234这个切面

版权声明:本文为yinyiYi159原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。