HList.append( compute_H(inputImages[i], initHRImage, inputTransforms[i], psfList[i], maskImages[i])) #Intensity correction To do #N4 on initHR #local correction #New init HR if args.bias == True: initHRImage_N4 = apply_N4_on_image(initHRImage, shrink_factor=1) xN4 = convert_image_to_vector(initHRImage_N4) hrN4Data = np.zeros(initHRImage.get_data().shape) for i in range(len(inputImages)): simu = convert_vector_to_image(HList[i].dot(xN4), inputImages[i]) im = gaussian_biais_correction(inputImages[i], simu, 5) warped = apply_affine_itk_transform_on_image( input_image=im, transform=inputTransforms[i][0], center=inputTransforms[i][1], reference_image=initHRImage, order=3) hrN4Data += (warped.get_data() / np.float32(len(inputImages))) initHRImage = nibabel.Nifti1Image(hrN4Data, initHRImage.affine) #Compute x x = convert_image_to_vector(initHRImage) maskX = convert_image_to_vector(maskHRImage) #Let mask the HR image x = x * maskX
HList = [] for i in range(len(inputImages)): HList.append(compute_H(inputImages[i], initHRImage, inputTransforms[i], psfList[i], maskImages[i])) # Intensity correction To do # N4 on initHR # local correction # New init HR if args.bias == True: initHRImage_N4 = apply_N4_on_image(initHRImage, shrink_factor=1) xN4 = convert_image_to_vector(initHRImage_N4) hrN4Data = np.zeros(initHRImage.get_data().shape) for i in range(len(inputImages)): simu = convert_vector_to_image(HList[i].dot(xN4), inputImages[i]) im = gaussian_biais_correction(inputImages[i], simu, 5) warped = apply_affine_itk_transform_on_image( input_image=im, transform=inputTransforms[i][0], center=inputTransforms[i][1], reference_image=initHRImage, order=3, ) hrN4Data += warped.get_data() / np.float32(len(inputImages)) initHRImage = nibabel.Nifti1Image(hrN4Data, initHRImage.affine) # Compute x x = convert_image_to_vector(initHRImage) maskX = convert_image_to_vector(maskHRImage) # Let mask the HR image
import sys import argparse from os import path import nibabel import numpy as np sys.path.append( path.dirname( path.dirname( path.dirname( path.abspath(__file__) ) ) ) ) from pybtk.filters.imagefilters import gaussian_biais_correction if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('-i', '--input', help='Moving image filename (required)', type=str, required = True) parser.add_argument('-r', '--ref', help='Reference image (required)', type=str, required = True) parser.add_argument('-o', '--output', help='Deformed image filename (required)', type=str, required = True) parser.add_argument('-s', '--sigma', help='Sigma of Gaussian filtering ', type=float, default=5) args = parser.parse_args() inpImage = nibabel.load(args.input) refImage = nibabel.load(args.ref) outputImage = gaussian_biais_correction(input_image=inpImage,reference_image=refImage, sigma=args.sigma) nibabel.save(outputImage,args.output)
parser.add_argument('-i', '--input', help='Moving image filename (required)', type=str, required=True) parser.add_argument('-r', '--ref', help='Reference image (required)', type=str, required=True) parser.add_argument('-o', '--output', help='Deformed image filename (required)', type=str, required=True) parser.add_argument('-s', '--sigma', help='Sigma of Gaussian filtering ', type=float, default=5) args = parser.parse_args() inpImage = nibabel.load(args.input) refImage = nibabel.load(args.ref) outputImage = gaussian_biais_correction(input_image=inpImage, reference_image=refImage, sigma=args.sigma) nibabel.save(outputImage, args.output)