SimpleITK: применить обратное преобразование - PullRequest
0 голосов
/ 29 августа 2018

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

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

inverse_transform = final_transform.GetInverse()

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

1 Ответ

0 голосов
/ 29 августа 2018

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

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

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 или более кратким IEEE ISBI'18 учебным пособием , чтобы ознакомиться с инструментарием.
...