Example #1
0
def augment_images_intensity(image_list, output_prefix, output_suffix):
    '''
    Generate intensity modified images from the originals.
    Args:
        image_list (iterable containing SimpleITK images): The images which we whose intensities we modify.
        output_prefix (string): output file name prefix (file name: output_prefixi_FilterName.output_suffix).
        output_suffix (string): output file name suffix (file name: output_prefixi_FilterName.output_suffix).

    Example in use: intensity_augmened_image = augment_images_intensity(data, os.path.join(OUTPUT_DIR, 'intensity_aug'), 'mha')
    '''

    # Create a list of intensity modifying filters, which we apply to the given images
    filter_list = []

    # Smoothing filters

    filter_list.append(sitk.SmoothingRecursiveGaussianImageFilter())
    filter_list[-1].SetSigma(2.0)

    filter_list.append(sitk.DiscreteGaussianImageFilter())
    filter_list[-1].SetVariance(4.0)

    filter_list.append(sitk.BilateralImageFilter())
    filter_list[-1].SetDomainSigma(4.0)
    filter_list[-1].SetRangeSigma(8.0)

    filter_list.append(sitk.MedianImageFilter())
    filter_list[-1].SetRadius(8)

    # Noise filters using default settings

    # Filter control via SetMean, SetStandardDeviation.
    filter_list.append(sitk.AdditiveGaussianNoiseImageFilter())

    # Filter control via SetProbability
    filter_list.append(sitk.SaltAndPepperNoiseImageFilter())

    # Filter control via SetScale
    filter_list.append(sitk.ShotNoiseImageFilter())

    # Filter control via SetStandardDeviation
    filter_list.append(sitk.SpeckleNoiseImageFilter())

    filter_list.append(sitk.AdaptiveHistogramEqualizationImageFilter())
    filter_list[-1].SetAlpha(1.0)
    filter_list[-1].SetBeta(0.0)

    filter_list.append(sitk.AdaptiveHistogramEqualizationImageFilter())
    filter_list[-1].SetAlpha(0.0)
    filter_list[-1].SetBeta(1.0)

    aug_image_lists = []  # Used only for display purposes in this notebook.
    for i, img in enumerate(image_list):
        aug_image_lists.append([f.Execute(img) for f in filter_list])
        for aug_image, f in zip(aug_image_lists[-1], filter_list):
            sitk.WriteImage(
                aug_image, output_prefix + str(i) + '_' + f.GetName() + '.' +
                output_suffix)
    return aug_image_lists
Example #2
0
def data_augumentation_noise(img_3d):
    # Create a list of intensity modifying filters, which we apply to the given images
    filter_list = []
    
    # Smoothing filters
    
    filter_list.append(sitk.SmoothingRecursiveGaussianImageFilter())
    filter_list[-1].SetSigma(2.0)
    
    filter_list.append(sitk.DiscreteGaussianImageFilter())
    filter_list[-1].SetVariance(4.0)
    
    filter_list.append(sitk.BilateralImageFilter())
    filter_list[-1].SetDomainSigma(4.0)
    filter_list[-1].SetRangeSigma(8.0)
    
    filter_list.append(sitk.MedianImageFilter())
    filter_list[-1].SetRadius(8)
    
    # Noise filters using default settings
    
    # Filter control via SetMean, SetStandardDeviation.
    filter_list.append(sitk.AdditiveGaussianNoiseImageFilter())
    filter_list[-1].SetMean(0.2)
    filter_list[-1].SetStandardDeviation(0.7)

    # Filter control via SetProbability
    filter_list.append(sitk.SaltAndPepperNoiseImageFilter())
    
    # Filter control via SetScale
    filter_list.append(sitk.ShotNoiseImageFilter())
    
    # Filter control via SetStandardDeviation
    filter_list.append(sitk.SpeckleNoiseImageFilter())

    filter_list.append(sitk.AdaptiveHistogramEqualizationImageFilter())
    filter_list[-1].SetAlpha(1.0)
    filter_list[-1].SetBeta(0.0)

    filter_list.append(sitk.AdaptiveHistogramEqualizationImageFilter())
    filter_list[-1].SetAlpha(0.0)
    filter_list[-1].SetBeta(1.0)
    
    aug_image_lists = [] # Used only for display purposes in this notebook.
    f = filter_list[4]
    aug_image = f.Execute(img_3d)
    return aug_image
Example #3
0
    def histogram_equalize(image, radius=(1, 1, 1), alpha=0.6, beta=0.3):

        if isinstance(image, (np.ndarray)):
            image = sitk.GetImageFromArray(image)

        filter = sitk.AdaptiveHistogramEqualizationImageFilter()

        heq = sitk.AdaptiveHistogramEqualization(image,
                                                 radius,
                                                 alpha=alpha,
                                                 beta=beta)
        # mean = sitk.Mean(heq,(1,1))

        return sitk.GetArrayFromImage(heq)
Example #4
0
def aeh(image, tup=tuple):
    #Standard Implementation: aeh(image,0.9,0.6.255,0)

    adapt = sitk.AdaptiveHistogramEqualizationImageFilter()
    adapt.SetAlpha(tup[0])
    adapt.SetBeta(tup[1])
    image = adapt.Execute(image)  # set mean and std deviation

    normalizeFilter = sitk.NormalizeImageFilter()
    resacleFilter = sitk.RescaleIntensityImageFilter()
    resacleFilter.SetOutputMaximum(tup[2])
    resacleFilter.SetOutputMinimum(tup[3])
    image = resacleFilter.Execute(image)  # set intensity 0-255
    image = normalizeFilter.Execute(image)  # set mean and std deviation
    return image
Example #5
0
    def __call__(self, sample):

        adapt = sitk.AdaptiveHistogramEqualizationImageFilter()
        adapt.SetAlpha(0.7)
        adapt.SetBeta(0.8)
        image = adapt.Execute(sample['image'])  # set mean and std deviation

        resacleFilter = sitk.RescaleIntensityImageFilter()
        resacleFilter.SetOutputMaximum(255)
        resacleFilter.SetOutputMinimum(0)
        image = resacleFilter.Execute(image)  # set mean and std deviation

        label = sample['label']

        return {'image': image, 'label': label}
Example #6
0
def adapt_eq_histogram(image):

    adapt = sitk.AdaptiveHistogramEqualizationImageFilter()
    adapt.SetAlpha(0.9)
    adapt.SetBeta(0.6)
    image = adapt.Execute(image)  # set mean and std deviation

    normalizeFilter = sitk.NormalizeImageFilter()
    resacleFilter = sitk.RescaleIntensityImageFilter()
    resacleFilter.SetOutputMaximum(255)
    resacleFilter.SetOutputMinimum(0)
    image = normalizeFilter.Execute(image)  # set mean and std deviation
    image = resacleFilter.Execute(image)  # set intensity 0-255

    return image
Example #7
0
def aeh(image,alpha,beta,outMax,outMin):
#Standard Implementation: aeh(image,0.9,0.6.255,0)

    adapt = sitk.AdaptiveHistogramEqualizationImageFilter()
    adapt.SetAlpha(alpha)
    adapt.SetBeta(beta)
    image = adapt.Execute(image)  # set mean and std deviation

    normalizeFilter = sitk.NormalizeImageFilter()
    resacleFilter = sitk.RescaleIntensityImageFilter()
    resacleFilter.SetOutputMaximum(255)
    resacleFilter.SetOutputMinimum(0)
    image = normalizeFilter.Execute(image)  # set mean and std deviation
    image = resacleFilter.Execute(image)  # set intensity 0-255

    return image
Example #8
0
    arrCleaned = arr1 * arr2
    return sitk.GetImageFromArray(arrCleaned)


def findBladderCenter(image, edgeImage, borderImage):
    image = sitk.GetArrayFromImage(image)
    edgeImage = sitk.GetArrayFromImage(edgeImage)
    borderImage = sitk.GetArrayFromImage(borderImage) == 0
    #since borderImage tLarge has the inside of the area marked 1, the outside 0, we take the negative
    out = image + edgeImage
    out = out + (borderImage * 255)
    return sitk.GetImageFromArray(out)


#%%
aehFilter = sitk.AdaptiveHistogramEqualizationImageFilter()
aehFilter.SetAlpha(1.3)
aehFilter.SetBeta(1)
aehFilter.SetRadius(5)
aehImg = aehFilter.Execute(imgResult)
arrAeh = sitk.GetArrayFromImage(aehImg)
arrAehCleaned = arrAeh * arrExcl
imgAehCleaned = sitk.GetImageFromArray(arrAehCleaned)
#plotSlices(imgAehCleaned,'sagittal')
#%%
gaussian.SetSigma(3)
imOut = gaussian.Execute(imgAehCleaned)
#plotSlices(imOut,'sagittal')

#%%Array Magic
statF2 = sitk.StatisticsImageFilter()