Python 单纯形裁剪图像
我想在Python3中使用SimpleTk裁剪3D图像 首先,加载图像并获取numpy数组Python 单纯形裁剪图像,python,3d,crop,simpleitk,Python,3d,Crop,Simpleitk,我想在Python3中使用SimpleTk裁剪3D图像 首先,加载图像并获取numpy数组 image_ct = sitk.ReadImage(path_ct, sitk.sitkInt16) array_ct = sitk.GetArrayFromImage(image_ct) 然后我对数组数据进行裁剪 center = (200, 200, 200) array_gt = array_gt[center[0]-50:center[0]+51, center[1]-50:center[1]+
image_ct = sitk.ReadImage(path_ct, sitk.sitkInt16)
array_ct = sitk.GetArrayFromImage(image_ct)
然后我对数组数据进行裁剪
center = (200, 200, 200)
array_gt = array_gt[center[0]-50:center[0]+51, center[1]-50:center[1]+51, center[2]-40:center[2]+41]
现在我想从数组中创建一个sitk.Image并保存结果
def create_ref_image(image, size=(101, 101, 81), spacing=(0.97, 0.97, 0.97), dimension=3):
ref_origin = np.zeros(dimension)
ref_direction = np.identity(dimension).flatten()
ref_image = sitk.Image(size, image.GetPixelIDValue())
ref_image.SetOrigin(ref_origin)
ref_image.SetSpacing(spacing)
ref_image.SetDirection(ref_direction)
return ref_image
ref_img = create_ref_image(image_ct)
cropped_img = sitk._SimpleITK._SetImageFromArray(np.ascontiguousarray(array_gt), ref_img)
sitk.WriteImage(cropped_img, "/DATA/exemple.nii")
但是我得到了这个错误
文件…/anaconda3/envs/objD/lib/python3.6/site-packages/simpletk/simpletk.py,第8207行,以书面形式显示
返回_simpletk.WriteImage*参数
ValueError:方法“WriteImage”中的null引用无效,参数1的类型为“itk::simple::Image const&”
如何在python中使用SimpleTk裁剪图像?事实证明,您可以直接在sitk.image上使用切片操作符
image_ct = image_ct[center[0]-50:center[0]+51, center[1]-50:center[1]+51, center[2]-40:center[2]+41]
sitk.WriteImage(image_ct, "/DATA/exemple.nii")
事实证明,您可以直接在sitk.Image上使用切片操作符
image_ct = image_ct[center[0]-50:center[0]+51, center[1]-50:center[1]+51, center[2]-40:center[2]+41]
sitk.WriteImage(image_ct, "/DATA/exemple.nii")
除了通过Python切片进行裁剪外,SimpleTk还具有裁剪函数和CropImageFilter 以下是裁剪功能的文档: 和CropImageFilter:
该功能与切片相同,但如果您需要以相同的方式裁剪多个图像,则可以方便地为所有图像执行CropImageFilter对象。除了通过Python切片进行裁剪外,SimpleIK还具有裁剪功能和CropImageFilter 以下是裁剪功能的文档: 和CropImageFilter: 该功能与切片相同,但如果需要以相同的方式裁剪多个图像,则可以方便地为所有图像执行CropImageFilter对象