def test_inverse_mapping(self): reader = get_label_reader() data_param = MOD_LABEL_DATA sampler = GridSampler(reader=reader, window_sizes=data_param, batch_size=10, spatial_window_size=None, window_border=(3, 4, 5), queue_length=50) aggregator = GridSamplesAggregator(image_reader=reader, name='label', output_path=os.path.join( 'testing_data', 'aggregated'), window_border=(3, 4, 5), interp_order=0) more_batch = True with self.test_session() as sess: sampler.set_num_threads(2) while more_batch: out = sess.run(sampler.pop_batch_op()) more_batch = aggregator.decode_batch(out['label'], out['label_location']) output_filename = '{}_niftynet_out.nii.gz'.format( sampler.reader.get_subject_id(0)) output_file = os.path.join('testing_data', 'aggregated', output_filename) self.assertAllClose(nib.load(output_file).shape, [256, 168, 256, 1, 1]) sampler.close_all() output_data = nib.load(output_file).get_data()[..., 0, 0] expected_data = nib.load( 'testing_data/T1_1023_NeuroMorph_Parcellation.nii.gz').get_data() self.assertAllClose(output_data, expected_data)
def test_25d_init(self): reader = get_25d_reader() sampler = GridSampler(reader=reader, window_sizes=SINGLE_25D_DATA, batch_size=10, spatial_window_size=None, window_border=(3, 4, 5), queue_length=50) aggregator = GridSamplesAggregator(image_reader=reader, name='image', output_path=os.path.join( 'testing_data', 'aggregated'), window_border=(3, 4, 5), interp_order=0) more_batch = True with self.test_session() as sess: sampler.set_num_threads(2) while more_batch: out = sess.run(sampler.pop_batch_op()) more_batch = aggregator.decode_batch(out['image'], out['image_location']) output_filename = '{}_niftynet_out.nii.gz'.format( sampler.reader.get_subject_id(0)) output_file = os.path.join('testing_data', 'aggregated', output_filename) self.assertAllClose(nib.load(output_file).shape, [256, 168, 256, 1, 1], rtol=1e-03, atol=1e-03) sampler.close_all()
def test_init_2d_mo_bidimcsv(self): reader = get_2d_reader() sampler = GridSampler(reader=reader, window_sizes=MOD_2D_DATA, batch_size=10, spatial_window_size=None, window_border=(3, 4, 5), queue_length=50) aggregator = GridSamplesAggregator(image_reader=reader, name='image', output_path=os.path.join( 'testing_data', 'aggregated'), window_border=(3, 4, 5), interp_order=0) more_batch = True with self.cached_session() as sess: sampler.set_num_threads(2) while more_batch: out = sess.run(sampler.pop_batch_op()) out_flatten = np.reshape(np.asarray(out['image']), [10, -1]) min_val = np.sum( np.reshape(np.asarray(out['image']), [10, -1]), 1) stats_val = np.concatenate([ np.min(out_flatten, 1, keepdims=True), np.max(out_flatten, 1, keepdims=True), np.sum(out_flatten, 1, keepdims=True) ], 1) stats_val = np.expand_dims(stats_val, 1) stats_val = np.concatenate([stats_val, stats_val], axis=1) more_batch = aggregator.decode_batch( { 'window_image': out['image'], 'csv_sum': min_val, 'csv_stats_2d': stats_val }, out['image_location']) output_filename = 'window_image_{}_niftynet_out.nii.gz'.format( sampler.reader.get_subject_id(0)) sum_filename = os.path.join( 'testing_data', 'aggregated', 'csv_sum_{}_niftynet_out.csv'.format( sampler.reader.get_subject_id(0))) stats_filename = os.path.join( 'testing_data', 'aggregated', 'csv_stats_2d_{}_niftynet_out.csv'.format( sampler.reader.get_subject_id(0))) output_file = os.path.join('testing_data', 'aggregated', output_filename) self.assertAllClose(nib.load(output_file).shape, (128, 128)) min_pd = pd.read_csv(sum_filename) self.assertAllClose(min_pd.shape, [10, 9]) stats_pd = pd.read_csv(stats_filename) self.assertAllClose(stats_pd.shape, [10, 14]) sampler.close_all()
def test_dynamic_window_initialising(self): sampler = GridSampler(reader=get_dynamic_window_reader(), window_sizes=DYNAMIC_MOD_DATA, batch_size=10, spatial_window_size=None, window_border=(0, 0, 0), queue_length=10) with self.cached_session() as sess: sampler.set_num_threads(1) out = sess.run(sampler.pop_batch_op()) self.assertAllClose(out['image'].shape, (10, 8, 2, 256, 2)) sampler.close_all()
def test_25d_initialising(self): sampler = GridSampler(reader=get_3d_reader(), window_sizes=MULTI_MOD_DATA, batch_size=10, spatial_window_size=(1, 20, 15), window_border=(0, 0, 0), queue_length=10) with self.cached_session() as sess: sampler.set_num_threads(2) out = sess.run(sampler.pop_batch_op()) self.assertAllClose(out['image'].shape, (10, 20, 15, 2)) sampler.close_all()
def test_2d_initialising(self): sampler = GridSampler(reader=get_2d_reader(), window_sizes=MOD_2D_DATA, batch_size=10, spatial_window_size=None, window_border=(0, 0, 0), queue_length=10) with self.test_session() as sess: sampler.set_num_threads(1) out = sess.run(sampler.pop_batch_op()) self.assertAllClose(out['image'].shape, (10, 10, 7, 1)) sampler.close_all()
def test_3d_init_mo(self): reader = get_3d_reader() sampler = GridSampler(reader=reader, window_sizes=MULTI_MOD_DATA, batch_size=10, spatial_window_size=None, window_border=(3, 4, 5), queue_length=50) aggregator = GridSamplesAggregator(image_reader=reader, name='image', output_path=os.path.join( 'testing_data', 'aggregated'), window_border=(3, 4, 5), interp_order=0) more_batch = True with self.cached_session() as sess: sampler.set_num_threads(2) while more_batch: out = sess.run(sampler.pop_batch_op()) out_flatten = np.reshape(np.asarray(out['image']), [10, -1]) min_val = np.sum( np.reshape(np.asarray(out['image']), [10, -1]), 1) more_batch = aggregator.decode_batch( { 'window_image': out['image'], 'csv_sum': min_val }, out['image_location']) output_filename = 'window_image_{}_niftynet_out.nii.gz'.format( sampler.reader.get_subject_id(0)) sum_filename = os.path.join( 'testing_data', 'aggregated', 'csv_sum_{}_niftynet_out.csv'.format( sampler.reader.get_subject_id(0))) output_file = os.path.join('testing_data', 'aggregated', output_filename) self.assertAllClose(nib.load(output_file).shape, (256, 168, 256, 1, 2)) min_pd = pd.read_csv(sum_filename) self.assertAllClose(min_pd.shape, [420, 9]) sampler.close_all()