Пример #1
0
    def test_processing_disabled(self, input_path):
        pre = DataPreProcessing3D([input_path], state=False)
        post = DataPostProcessing3D([input_path], state=False)

        # assert that output paths are equal to input paths
        assert pre() == [input_path]
        assert post() == [input_path]
Пример #2
0
    def test_postprocessing_tiff(self, input_path):
        post = DataPostProcessing3D([input_path], save_directory="PostProcessing", out_ext=".tiff")

        # run postprocessing
        output_paths = post()

        # assert output path correctness
        basepath, basename = os.path.split(input_path)
        assert output_paths[0] == os.path.join(basepath, "PostProcessing", os.path.splitext(basename)[0] + '.tiff')
Пример #3
0
def _create_postprocessing_step(input_paths, input_type, config):
    output_type = config.get('output_type', input_type)
    save_directory = config.get('save_directory', 'PostProcessing')
    factor = config.get('factor', [1, 1, 1])
    out_ext = ".tiff" if config["tiff"] else ".h5"
    state = config.get('state', True)
    return DataPostProcessing3D(input_paths,
                                input_type=input_type,
                                output_type=output_type,
                                save_directory=save_directory,
                                factor=factor,
                                out_ext=out_ext,
                                state=state)
Пример #4
0
    def test_postprocessing_factor(self, input_path):
        factor = [1, 2, 2]
        post = DataPostProcessing3D([input_path], save_directory="PostProcessing", factor=factor)

        # run postprocessing
        output_paths = post()

        # assert output path correctness
        basepath, basename = os.path.split(input_path)
        assert output_paths[0] == os.path.join(basepath, "PostProcessing", basename)

        # assert output shape
        with h5py.File(input_path, 'r') as f:
            original = f['segmentation'][...]

        with h5py.File(output_paths[0], 'r') as f:
            rescaled = f['segmentation'][...]

        assert np.array_equal(np.array(rescaled.shape), np.array(original.shape) * factor)
Пример #5
0
    def test_tiff_voxel_size(self, input_path):
        """
        Take input h5, convert to tiff, convert to h5, check if the voxel size matches the original
        """
        # convert to h5 to tiff
        post = DataPostProcessing3D([input_path], input_type="labels", output_type="labels", out_ext='.tiff')
        output_paths = post()
        # convert tiff to h5
        pre = DataPreProcessing3D(output_paths, input_type="labels", output_type="labels")
        output_paths = pre()

        # check output voxel_size
        with h5py.File(input_path, 'r') as f:
            expected_voxel_size = f['raw'].attrs['element_size_um']

        with h5py.File(output_paths[0], 'r') as f:
            voxel_size = f['raw'].attrs['element_size_um']

        assert np.array_equal(expected_voxel_size, voxel_size)