def get_arrays(): mov_brain = 'DK52' fix_brain = 'DK43' moving_image = load_stack_from_prepi(mov_brain) fixed_image = load_stack_from_prepi(fix_brain) affine_transform = get_affine_transform(fix_brain) affine_transformed_image = sitk.Resample(moving_image, fixed_image, affine_transform, sitk.sitkLinear, 0.0, moving_image.GetPixelID()) fixed_arr = sitk.GetArrayViewFromImage(fixed_image) moving_arr = sitk.GetArrayViewFromImage(moving_image) affine_transformed_arr = sitk.GetArrayViewFromImage( affine_transformed_image) # fixed_arr = np.swapaxes(fixed_arr, 0, 2) # moving_arr = np.swapaxes(moving_arr, 0, 2) # affine_transformed_arr = np.swapaxes(affine_transformed_arr, 0, 2) return fixed_arr, moving_arr, affine_transformed_arr
def get_itk_affine_transformed_coms(): shared_landmarks = get_shared_landmarks_between_dk52_and_atlas() atlas_com_dict = get_atlas_com() DK52_com_dict = get_dk52_com() atlas_com = np.array([atlas_com_dict[landmark] for landmark in shared_landmarks]) DK52_com = np.array([DK52_com_dict[landmark] for landmark in shared_landmarks]) prep_list = get_prep_list_for_rough_alignment_test() itk_transformed_coms = [] itk_aligned_coms = [] for prepi in prep_list: affine_transform = get_affine_transform(prepi) DK52_com_transformed = transform_point_affine(affine_transform,DK52_com) DK52_com_aligned,_ = get_and_apply_transform(DK52_com_transformed,atlas_com) DK52_com_transformed = dict(zip(shared_landmarks,DK52_com_transformed)) DK52_com_aligned = dict(zip(shared_landmarks,DK52_com_aligned)) itk_transformed_coms.append(DK52_com_transformed) itk_aligned_coms.append(DK52_com_aligned) return itk_transformed_coms,itk_aligned_coms
import os import sys sys.path.append('/home/zhw272/programming/pipeline_utility') from pathlib import Path import matplotlib.pyplot as plt from matplotlib.backends.backend_pdf import PdfPages import SimpleITK as sitk import notebooks.Bili.notebook.utility as utility from notebooks.Will.toolbox.IOs.get_stack_image_sitk import load_stack_from_prepi from notebooks.Will.toolbox.IOs.get_calculated_transforms import get_affine_transform mov_brain = 'DK52' fix_brain = 'DK43' thumb_spacing = (10.4, 10.4, 20.0) moving_image = load_stack_from_prepi(mov_brain) fixed_image = load_stack_from_prepi(fix_brain) affine_transform = get_affine_transform(fix_brain) affine_transformed_image = sitk.Resample(moving_image, fixed_image, affine_transform, sitk.sitkLinear, 0.0, moving_image.GetPixelID()) z_step = 10 # convert all images to arrays fixed_arr = sitk.GetArrayViewFromImage(fixed_image) moving_arr = sitk.GetArrayViewFromImage(moving_image) affine_transformed_arr = sitk.GetArrayViewFromImage(affine_transformed_image) save_path = '/home/zhw272/plots/affine_rough_alignment_diag/' if not os.path.exists(save_path): os.mkdir(save_path) def add_figure_to_pdf(prep_id, stack_array, title_text, z, pdf): fig = plt.figure(**figure_kwargs)
import sys import numpy as np sys.path.append('/home/zhw272/programming/pipeline_utility') from notebooks.Will.toolbox.IOs.get_calculated_transforms import get_affine_transform, get_demons_transform import SimpleITK as sitk affine_path43 = '/home/zhw272/programming/pipeline_utility/notebooks/Bili/data/automatic-alignment/DK43/1-affine.tfm' transform = sitk.ReadTransform(affine_path43) affine_path43_will = get_affine_transform('DK43') print(transform) print(affine_path43_will)
#%% import sys sys.path.append('/home/zhw272/programming/pipeline_utility') from notebooks.Will.toolbox.IOs.get_calculated_transforms import get_affine_transform # %% affine_transform = get_affine_transform('DK39') # %%
import sys sys.path.append('/home/zhw272/programming/pipeline_utility') from notebooks.Will.toolbox.IOs.get_calculated_transforms import get_affine_transform from notebooks.Will.toolbox.IOs.get_calculated_transforms import get_affine_transform from notebooks.Will.toolbox.rough_alignment.sitk.utility import * import matplotlib.pyplot as plt #%% prepi = 'DK39' transform = get_affine_transform(prepi) # %% DK39, DK52 = get_fixed_and_moving_image('DK39', 'DK52') # %% centering_transform = sitk.CenteredTransformInitializer( DK39, DK52, sitk.AffineTransform(3), sitk.CenteredTransformInitializerFilter.GEOMETRY) # %% np39 = sitk.GetArrayFromImage(DK39) np52 = sitk.GetArrayFromImage(DK52) #%% plt.imshow(np39[200] - np52[200]) #%% sitk.Show(DK39, title="Visible Human Head") # %% def mask_image_multiply(mask, image): components_per_pixel = image.GetNumberOfComponentsPerPixel() if components_per_pixel == 1: return mask * image
def get_DK52_com_aligned_to_prepi(prepi): DK52_com = get_reference_com('DK52') print('loading demons transformation for prep: ' + prepi) affine_transform = get_affine_transform(prepi) DK52_com_aligned = transform_point_affine(affine_transform, DK52_com) return DK52_com_aligned