diff options
| -rw-r--r-- | .gitignore | 6 | ||||
| -rw-r--r-- | README.md | 63 | ||||
| -rwxr-xr-x | buildall.sh | 29 | ||||
| -rwxr-xr-x | load_c_data.py | 27 | ||||
| -rwxr-xr-x | run.sh | 4 |
5 files changed, 121 insertions, 8 deletions
@@ -1,6 +1,12 @@ # Build files build/ +# Virtual Environment +.venv/ + # Data files data/ output/ +# pixi environments +.pixi/* +!.pixi/config.toml @@ -1,10 +1,65 @@ ** Example Usage -```sh -for file in data/HT-*/; do ./run.sh `basename $file`; done +For the following labelling input structure +``` +data/ +├── test +│ ├── HT-A1 +│ │ ├── Label1.tif +│ │ ├── OtherLabel.tif +│ │ ├── NameMe.tif +│ │ └── A1.labels.tif[4].tif +│ └── HT-A2 +│ ├── Label.tif +│ ├── 2.tif +│ └── A2.tif +└── train + ├── HT-B1 + │ └── B1.labels.tif[0].tif + ├── HT-B2 + │ ├── B2.tif\ [1].tif + │ ├── B2.tif\ [2].tif + │ └── B2.tif\ [3].tif + ├── HT-C5 + │ ├── C5.tif\ [1].tif + │ ├── C5.tif\ [2].tif + │ └── C5.tif\ [3].tif + └── HT-J9 + └── J9.tif[1].tif ``` +Simply run: ```sh -mkdir -p output/small/ -./build/prog sample_data/small output/small/small.bin output/small/small.png +./buildall.sh +``` + +To get: +``` +output/ +├── test +│ ├── HT-A1.bin +│ ├── HT-A1.png +│ ├── HT-A1_seg.npy +│ ├── HT-A1.tif +│ ├── HT-A2.bin +│ ├── HT-A2.png +│ ├── HT-A2_seg.npy +│ └── HT-A2.tif +└── train + ├── HT-B1.bin + ├── HT-B1.png + ├── HT-B1_seg.npy + ├── HT-B1.tif + ├── HT-B2.bin + ├── HT-B2.png + ├── HT-B2_seg.npy + ├── HT-B2.tif + ├── HT-C5.bin + ├── HT-C5.png + ├── HT-C5_seg.npy + ├── HT-C5.tif + ├── HT-J9.bin + ├── HT-J9.png + ├── HT-J9_seg.npy + └── HT-J9.tif ``` diff --git a/buildall.sh b/buildall.sh new file mode 100755 index 0000000..7cccd23 --- /dev/null +++ b/buildall.sh @@ -0,0 +1,29 @@ +#!/bin/sh +make + +CLEAN="t" + +builder() { + SOURCE="$1" + SNAME="`basename \"${SOURCE}\"`" + DNAME="`dirname \"${SOURCE}\"`" + mkdir -p ../output/${DNAME} + ../build/prog -s -n 8 -d ${SOURCE} -b ../output/${DNAME}/${SNAME}.bin -p ../output/${DNAME}/${SNAME}.png +} + +cd data/ +for dname in */*; do + builder "${dname}" & +done +wait + +cd .. +for bname in output/*/*.bin; do + python load_c_data.py "${bname}" & +done +wait + +if [ "${CLEAN}" = "t" ]; then + rm output/*/*.bin + rm output/*/*.png +fi diff --git a/load_c_data.py b/load_c_data.py new file mode 100755 index 0000000..a3a905b --- /dev/null +++ b/load_c_data.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python3.11 +import numpy as np +from sys import argv +from matplotlib import pyplot as plt +import tifffile +#from tqdm.std import tqdm + +FILE_NAME=None +if len(argv) > 1: + FILE_NAME = argv[1] +DTYPE=np.uint16 +WIDTH,HEIGHT=1920,2560 +data = np.fromfile(FILE_NAME, dtype=DTYPE) +_im = plt.imread(FILE_NAME[:-len("bin")] + "png") +w,h,c = _im.shape +if w <= 4: + c,w,h = w,h,c +WIDTH,HEIGHT = w,h +labels = data.reshape(WIDTH,HEIGHT) + +BASE="/home/physics/cunnichr/Data/HistologyArrays/HistologyArray00/" +NAME = FILE_NAME[-len("HT-XX.bin"):-len(".bin")] +image = plt.imread(BASE + NAME + "/image.png") +print(FILE_NAME[:-len("bin")] + "tif", "\n", image.transpose(2,0,1).shape, len(np.unique(labels))) +tifffile.imwrite(FILE_NAME[:-len("bin")] + "tif", image.transpose(2,0,1)[:3,...]) +#np.savez(FILE_NAME[:-len("bin")] + ".npz", image=[], masks=labels) +np.save(FILE_NAME[:-len(".bin")] + "_seg.npy", dict(image=image, masks=labels)) @@ -1,4 +0,0 @@ -#!/bin/sh -SOURCE="$1" -mkdir -p output/${SOURCE} -./build/prog -s -n 8 -d data/${SOURCE} -b output/${SOURCE}/${SOURCE}.bin -p output/${SOURCE}/${SOURCE}.png |
