diff --git a/extensions/chaeo/examples/test_modify_object_classifier.py b/extensions/chaeo/examples/test_modify_object_classifier.py deleted file mode 100644 index 671a0f7865ef88f22c635b49fb8b6b1252c0e1f7..0000000000000000000000000000000000000000 --- a/extensions/chaeo/examples/test_modify_object_classifier.py +++ /dev/null @@ -1,59 +0,0 @@ -from pathlib import Path -import shutil - -import h5py -import numpy as np - -from extensions.chaeo.accessors import MonoPatchStack, MonoPatchStackFromFile -from extensions.chaeo.models import PatchStackObjectClassifier - - -def modify_ilastik_object_classifier(template_ilp: Path, lane: int = 0): - proj_dir = template_ilp.parent - proj_name = template_ilp.stem - proj_new_ilp = shutil.copy(template_ilp, proj_dir / ('mod_' + proj_name + '.ilp')) - - with h5py.File(proj_dir / proj_new_ilp, 'r+') as h5: - - # delete ObjectExtraction / RegionFeatures / 0000 - # delete ObjectClassification/ClassifierForests - keys_to_delete = [ - f'ObjectExtraction/RegionFeatures/{lane:04d}', - 'ObjectClassification/ClassifierForests' - ] - for key in keys_to_delete: - if key in h5.keys(): - del h5[key] - assert key not in h5.keys() - - # make links to input data relative - for gk in ['Raw Data', 'Segmentation Image']: - key = f'Input Data/infos/lane{lane:04d}/{gk}' - assert h5[f'{key}/location'][()] == 'FileSystem'.encode() - pa = Path(h5[f'{key}/filePath'][()].decode()) - # assert pa.is_absolute() - rel_pa = pa.name - assert (proj_dir / rel_pa).exists() - del h5[f'{key}/filePath'] - h5[f'{key}/filePath'] = rel_pa - assert h5[f'{key}/filePath'][()] == rel_pa.encode() - - return proj_new_ilp - - -if __name__ == '__main__': - where = Path('c:/Users/rhodes/projects/proj0011-plankton-seg/exp0009/output/labeled_patches-20231030-0001') - where_ilp = where / 'auto_obj_before.ilp' - new_ilp = modify_ilastik_object_classifier(where_ilp) - # new_ilp = 'mod_auto_obj_before.ilp' - model = PatchStackObjectClassifier({'project_file': where / new_ilp}) - - raw = MonoPatchStackFromFile(where / 'zstack_train_raw.tif') - mask = MonoPatchStackFromFile(where / 'zstack_train_mask.tif') - labels = MonoPatchStackFromFile(where / f'zstack_train_label.tif') - - result, _ = model.infer(raw, mask) - assert isinstance(result, MonoPatchStack) - - print(f'Unique labels in truth set: {np.unique(labels.data)}') - print(f'Unique labels in inferred set: {np.unique(result.data)}') \ No newline at end of file