plt.savefig(os.path.join(out_dir_noAdapt, "%03.0d_hist.png"%i))
        plt.close()


def cut_off_values_upper_lower_percentile(image, percentile_lower=0.2, percentile_upper=99.8):
    cut_off_lower = np.percentile(image[image!=image[0,0,0]].ravel(), percentile_lower)
    cut_off_upper = np.percentile(image[image!=image[0,0,0]].ravel(), percentile_upper)
    image[image < cut_off_lower] = cut_off_lower
    image[image > cut_off_upper] = cut_off_upper
    return image

percentile_target = [0., 100.]

for i in range(999):
    print i
    t1_img, t1km_img, flair_img, adc_img, cbv_img, _, seg_combined = load_patient_with_t1(i, [1., 0.5, 0.5], 'new')
    if t1_img is not None:
        np.save(os.path.join(out_dir_resampled, "%03.0d_t1.npy" % i), t1_img)
        np.save(os.path.join(out_dir_resampled, "%03.0d_t1km.npy" % i), t1km_img)
        np.save(os.path.join(out_dir_resampled, "%03.0d_flair.npy" % i), flair_img)
        np.save(os.path.join(out_dir_resampled, "%03.0d_adc.npy" % i), adc_img)
        np.save(os.path.join(out_dir_resampled, "%03.0d_cbv.npy" % i), cbv_img)
        np.save(os.path.join(out_dir_resampled, "%03.0d_seg.npy" % i), seg_combined)


for i in range(119, 150):
    if not os.path.isfile(os.path.join(out_dir_resampled, "%03.0d_t1.npy" % i)):
        continue

    t1_img = np.load(os.path.join(out_dir_resampled, "%03.0d_t1.npy" % i))
    t1km_img = np.load(os.path.join(out_dir_resampled, "%03.0d_t1km.npy" % i))
all_min_vals_t1c = []
all_min_vals_flair = []
all_min_vals_adc = []
all_min_vals_cbv = []

all_std_t1 = []
all_std_t1c = []
all_std_flair = []
all_std_adc = []
all_std_cbv = []

all_shapes = []

for k in training_patients:
    print k
    t1_img, t1c_img, flair_img, adc_img, cbv_img, t1km_downsampled, seg = load_patient_with_t1(k, [1,1,1], 'new')
    if t1_img is None:
        continue

    pool = Pool(5)
    t1_img, t1c_img, flair_img, adc_img, cbv_img = pool.map(cut_off_values_upper_lower_percentile, (t1_img, t1c_img, flair_img, adc_img, cbv_img))

    pool.close()
    pool.join()

    brain_mask = seg!=0
    all_means_t1.append(t1_img[brain_mask].mean())
    all_means_t1c.append(t1c_img[brain_mask].mean())
    all_means_flair.append(flair_img[brain_mask].mean())
    all_means_adc.append(adc_img[brain_mask].mean())
    all_means_cbv.append(cbv_img[brain_mask].mean())
                                          percentile_lower=0.2,
                                          percentile_upper=99.8):
    cut_off_lower = np.percentile(image[image != image[0, 0, 0]].ravel(),
                                  percentile_lower)
    cut_off_upper = np.percentile(image[image != image[0, 0, 0]].ravel(),
                                  percentile_upper)
    image[image < cut_off_lower] = cut_off_lower
    image[image > cut_off_upper] = cut_off_upper
    return image


percentile_target = [0., 100.]

for i in range(999):
    print i
    t1_img, t1km_img, flair_img, adc_img, cbv_img, _, seg_combined = load_patient_with_t1(
        i, [1., 0.5, 0.5], 'new')
    if t1_img is not None:
        np.save(os.path.join(out_dir_resampled, "%03.0d_t1.npy" % i), t1_img)
        np.save(os.path.join(out_dir_resampled, "%03.0d_t1km.npy" % i),
                t1km_img)
        np.save(os.path.join(out_dir_resampled, "%03.0d_flair.npy" % i),
                flair_img)
        np.save(os.path.join(out_dir_resampled, "%03.0d_adc.npy" % i), adc_img)
        np.save(os.path.join(out_dir_resampled, "%03.0d_cbv.npy" % i), cbv_img)
        np.save(os.path.join(out_dir_resampled, "%03.0d_seg.npy" % i),
                seg_combined)

for i in range(119, 150):
    if not os.path.isfile(os.path.join(out_dir_resampled,
                                       "%03.0d_t1.npy" % i)):
        continue