SimpleITK: применить обратное преобразование

Недавно я начал использовать SimpleITK для регистрации изображений. Для моего текущего проекта мне нужно зарегистрировать рентгеновское изображение и КТ-изображение, а затем применить обратную матрицу к маске области интереса, трассируемой на рентгеновском изображении.

Я получил обратную матрицу с этой строкой:

inverse_transform = final_transform.GetInverse()

Как я могу применить преобразование к маске ROI?


person schrodingercat    schedule 29.08.2018    source источник


Ответы (1)


Добро пожаловать в SimpleITK!

Предполагая, что ваш рентгеновский снимок является фиксированным изображением при регистрации (КТ - движущимся), тогда результатом регистрации является преобразование точек отображения из рентгеновского снимка в КТ. Все, что вам нужно сделать, это пересэмплировать изображение маски области интереса на компьютерную томографию с помощью обратного преобразования.

transformed_labels = sitk.Resample(xray_roi_mask, ct_image, inverse_transform, sitk.sitkNearestNeighbor, 0.0, #out of bounds pixel color xray_roi_mask.GetPixelID())

Это делает последняя ячейка этой записной книжки Jupyter.

Два дополнительных комментария:

  1. Не уверен, что вы имеете в виду под регистрацией рентгена для КТ. Это регистрация 2D/3D, которая в настоящее время не поддерживается SimpleITK, поэтому я предполагаю, что вы выполняете регистрацию 2D/2D или 3D/3D.
  2. Поскольку вы новичок в SimpleITK, я бы порекомендовал ознакомиться с нашим основным репозиторием блокнотов Jupyter или более кратким < href="https://github.com/SimpleITK/ISBI2018_TUTORIAL" rel="noreferrer">учебник IEEE ISBI'18, чтобы ознакомиться с набором инструментов.
person zivy    schedule 29.08.2018
comment
Благодарю вас! Это именно то, что мне нужно сделать. Я выполняю регистрацию 3D/3D. Я неправильно использовал «рентген», у меня есть изображение с интраоперационной рентгеновской системы. И спасибо за ссылки. - person schrodingercat; 29.08.2018