сопоставить оцененную маску с земной маской правды - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть файл маски в формате nifti.nii.Который имеет boolean 3d массив, состоящий из подключенных компонентов.Также поставляется с матрицей преобразования affine в заголовке с дополнительной информацией.

У меня есть другая маска в формате dicom.Который также является 3D-массивом.

Что я хочу сделать, так это вычислить счет костей, накладывая их nifti mask на dicom mask.Но так как маска nifti и маска dicom находятся в разных системах координат и имеют разный интервал между пикселями, я должен выровнять их, прежде чем вычислять счет костей.Для этого я использую simpleITK.Ниже приведен мой код

transform = sitk.CenteredTransformInitializer(ref_dicom_series, 
                                              nifti_mask, 
                                              sitk.Euler3DTransform(),
                               sitk.CenteredTransformInitializerFilter.GEOMETRY)

resampledMask = sitk.Resample(nifti_mask,

                             ref_dicom_series,
                               transform, 
                               sitk.sitkNearestNeighbor,
                               0.0, #out of bounds pixel color
                               nifti_mask.GetPixelID())

После повторной выборки масштабированная маска имеет то же происхождение и интервал.Но когда я наношу корональные, осевые и сагиттальные срезы, наложив маски с повторной выборкой и с помощью дикомы, видно, что они не перекрываются.

Так что мой вопрос в том, как мне достичь своей цели.Пример кода будет высоко ценится.Спасибо

...