def test_decfa(): data_orig = np.zeros((4, 4, 4, 3)) data_orig[0, 0, 0] = np.array([1, 0, 0]) img_orig = Nifti1Image(data_orig, np.eye(4)) img_new = decfa(img_orig) data_new = np.asanyarray(img_new.dataobj) assert data_new[0, 0, 0] == np.array((1, 0, 0), dtype=np.dtype([('R', 'uint8'), ('G', 'uint8'), ('B', 'uint8')])) assert data_new.dtype == np.dtype([('R', 'uint8'), ('G', 'uint8'), ('B', 'uint8')]) round_trip = decfa_to_float(img_new) data_rt = np.asanyarray(round_trip.dataobj) assert np.all(data_rt == data_orig) data_orig = np.zeros((4, 4, 4, 3)) data_orig[0, 0, 0] = np.array([0.1, 0, 0]) img_orig = Nifti1Image(data_orig, np.eye(4)) img_new = decfa(img_orig, scale=True) data_new = np.asanyarray(img_new.dataobj) assert data_new[0, 0, 0] == np.array((25, 0, 0), dtype=np.dtype([('R', 'uint8'), ('G', 'uint8'), ('B', 'uint8')])) assert data_new.dtype == np.dtype([('R', 'uint8'), ('G', 'uint8'), ('B', 'uint8')]) round_trip = decfa_to_float(img_new) data_rt = np.asanyarray(round_trip.dataobj) assert data_rt.shape == (4, 4, 4, 3) assert np.all(data_rt[0, 0, 0] == np.array([25, 0, 0]))
def test_decfa(): data_orig = np.zeros((4, 4, 4, 3)) data_orig[0, 0, 0] = np.array([1, 0, 0]) img_orig = Nifti1Image(data_orig, np.eye(4)) img_new = decfa(img_orig) data_new = img_new.get_data() assert data_new[0, 0, 0] == np.array((1, 0, 0), dtype=np.dtype([('R', 'uint8'), ('G', 'uint8'), ('B', 'uint8')])) assert data_new.dtype == np.dtype([('R', 'uint8'), ('G', 'uint8'), ('B', 'uint8')]) round_trip = decfa_to_float(img_new) data_rt = round_trip.get_fdata() assert np.all(data_rt == data_orig) data_orig = np.zeros((4, 4, 4, 3)) data_orig[0, 0, 0] = np.array([0.1, 0, 0]) img_orig = Nifti1Image(data_orig, np.eye(4)) img_new = decfa(img_orig, scale=True) data_new = img_new.get_data() assert data_new[0, 0, 0] == np.array((25, 0, 0), dtype=np.dtype([('R', 'uint8'), ('G', 'uint8'), ('B', 'uint8')])) assert data_new.dtype == np.dtype([('R', 'uint8'), ('G', 'uint8'), ('B', 'uint8')]) round_trip = decfa_to_float(img_new) data_rt = round_trip.get_data() assert data_rt.shape == (4, 4, 4, 3) assert np.all(data_rt[0, 0, 0] == np.array([25, 0, 0]))
def test_decfa(): data_orig = np.zeros((4, 4, 4, 3)) data_orig[0, 0, 0] = np.array([1, 0, 0]) img_orig = Nifti1Image(data_orig, np.eye(4)) img_new = decfa(img_orig) data_new = img_new.get_data() assert data_new[0, 0, 0] == np.array((1, 0, 0), dtype=np.dtype([('R', 'uint8'), ('G', 'uint8'), ('B', 'uint8')])) assert data_new.dtype == np.dtype([('R', 'uint8'), ('G', 'uint8'), ('B', 'uint8')]) data_orig = np.zeros((4, 4, 4, 3)) data_orig[0, 0, 0] = np.array([0.1, 0, 0]) img_orig = Nifti1Image(data_orig, np.eye(4)) img_new = decfa(img_orig, scale=True) data_new = img_new.get_data() assert data_new[0, 0, 0] == np.array((25, 0, 0), dtype=np.dtype([('R', 'uint8'), ('G', 'uint8'), ('B', 'uint8')])) assert data_new.dtype == np.dtype([('R', 'uint8'), ('G', 'uint8'), ('B', 'uint8')])
def main(): parser = _build_args_parser() args = parser.parse_args() assert_inputs_exist(parser, args.in_image) assert_outputs_exist(parser, args, args.out_image) original_im = nib.load(args.in_image) if original_im.ndim == 4: if "float" in original_im.header.get_data_shape(): scale = True else: scale = False converted_im = decfa(original_im, scale=scale) nib.save(converted_im, args.out_image) elif original_im.ndim == 3: converted_im_float = decfa_to_float(original_im) converted_data = converted_im_float.get_fdata() converted_data_int = converted_data.astype("uint8") converted_im = nib.Nifti1Image(converted_data_int, converted_im_float.affine) nib.save(converted_im, args.out_image)
def test_decfa(): data_orig = np.zeros((4, 4, 4, 3)) data_orig[0, 0, 0] = np.array([1, 0, 0]) img_orig = Nifti1Image(data_orig, np.eye(4)) img_new = decfa(img_orig) data_new = img_new.get_data() assert data_new[0, 0, 0] == np.array((1, 0, 0), dtype=np.dtype([('R', 'uint8'), ('G', 'uint8'), ('B', 'uint8')])) assert data_new.dtype == np.dtype([('R', 'uint8'), ('G', 'uint8'), ('B', 'uint8')])