无法使用scipy.ndimage.interpolation.affine_transform翻译图像

时间:2017-04-15 09:00:21

标签: python scipy medical

我有一张我想要翻译的图片。我正在尝试使用scipy的仿射变换函数。当我尝试使用该功能时,我收到一条错误,指出' 仿射矩阵行数错误。我试过谷歌搜索,但没有运气。任何帮助调试这将非常有帮助。

    import numpy as np
    import scipy.ndimage as nd

    translation_matrix = [[1,0,0],
                          [0,1,0],
                         [tx,ty,1]] 
    output = nd.interpolation.affine_transform(input_image,translation_matrix,order=3,mode='nearest')

我在这里收到错误。

编辑:有关我的问题的更多详细信息。我的MR图像中有一些有肿瘤的切片。我知道哪些切片包含肿瘤,哪些切片不包含肿瘤。肿瘤需要集中在一起进行进一步分析。因此,我所遇到的解决方案是计算特定切片中肿瘤的质心坐标。然后将质心坐标作为新图像的中心。我需要为所有有肿瘤的切片做这个。

1 个答案:

答案 0 :(得分:1)

对我来说,以下是有效的。使用线性(非仿射)矩阵并单独指定偏移量:

transformed = nd.interpolation.affine_transform(picture,((np.cos(ph), np.sin(ph)), (-np.sin(ph), np.cos(ph))), offset=(4,-2),order=3,mode='nearest')