2020-04-06

使用SimpleITK 进行重采样核心代码

def ResampleBySize_view(path1, path2, name, rowSize, colSize):

        img = sitk.ReadImage(path1 + name)

        #    myshow(img,'1')

        #    pix_resampled = (sitk.GetArrayFromImage(img).astype(dtype=float))

        #    plot_3d(pix_resampled,0)

        original_spacing = img.GetSpacing()

        print('original_spacing:', original_spacing)

        original_size = img.GetSize()

        print('original_size:', original_size)

        # VolSize = original_size

         rowSize, colSize = rowSize, colSize

         factor3 =1

         factor1 = rowSize / img.GetSize()[0]

         factor2 = colSize / img.GetSize()[1]

         factor = [factor1, factor2, factor3]

         # we rotate the image according to its transformation using the direction and according to the final          spacing we want

        newSize = np.asarray(img.GetSize()) * factor +0.00001

        dstRes = np.asarray(img.GetSpacing()) / factor

        print(dstRes)

        print(newSize)

         #    ret = np.zeros([newSize[0],newSize[1], newSize[2]], dtype=np.float32)

         newSize = newSize.astype(dtype=int).tolist()

         print(newSize)

         T = sitk.AffineTransform(3)

         # T.SetMatrix(img.GetDirection())

       #    T.Scale(factor)

       #    T.scale(factor)

        resampler = sitk.ResampleImageFilter()

        resampler.SetReferenceImage(img)

        resampler.SetOutputSpacing([dstRes[0], dstRes[1], dstRes[2]])

        resampler.SetSize(newSize)

        method = sitk.sitkLinear

        resampler.SetInterpolator(method)

        resampler.SetTransform(T)

        imgResampled = resampler.Execute(img)

        new_spacing = imgResampled.GetSpacing()

        print('new_spacing:', new_spacing)

        print('new_size:', imgResampled.GetSize())

        path2 = path2

        sitk.WriteImage(imgResampled, path2 + name)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容