Пример #1
0
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
Пример #2
0
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
Пример #3
0
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)
Пример #4
0
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