wj-wt-ftt
is a web-based tool which provide a fast way to view and annotate volumetric scrolls data. You don't need to setup anything. Just download the data, open the app, and annotate it!
Take cube 02000_02256_03024
as an example.
Create a folder (name it whatever you want) and add a meta.json
file in it. Here's the file structure.
.
├── meta.json
├── 02000_02256_03024_mask.nrrd
└── 02000_02256_03024_volume.nrrd
This is how meta.json look like.
{
"chunks": [
{
"mask": "02000_02256_03024_mask.nrrd",
"volume": ["02000_02256_03024_volume.nrrd"],
"segments": [],
"z": 2000,
"y": 2256,
"x": 3024,
"size": 256
}
]
}
Open wj-wt-ftt and select that folder you created before. You will be asked to authorize the app to read data; select "Confirm" to continue. Once loaded, you will see the z slice
view on it. The purple part indicates the label in mask.nrrd
. Now we're at label 1
. Look at the GUI panel on the right hand side and switch to the label 2
mode.
Try pressing x, y, z key to switch between different axis. You can also press space and then slide the wheel to zoom in & out.
Back to Z slice and slide the wheel without pressing the space key. You can browse the slice in this way and then inspect your current slice location via the GUI panel.
You can paint the label on a given slice via left click. Press e key to switch to the erase mode. Press shift and slice the wheel can change the painting area. You can do these steps via GUI panel instead.
Now, let's label an area using the tricks mentioned above. We recommend using larger dot & depth
values to roughly outline a segment. Once finished, you can erase them with a smaller values.
Hold down the spacebar and then drag the screen. You will jump into the 3D view to see the region that you label. If you get loss, release the space key and press x, y, z key can back to the slice mode. You will automatically return to slice mode as well if your camera happens to be aligned with an axis. You can also use the GUI panel to find a clearer way of displaying those data.
If you want to display a given segment on it, please make sure it is cut into a smaller region. You can write your own script or use the following script instead.
Once finished, put the segment .obj data into the folder and update the meta.json:
{
"chunks": [
{
"mask": "02000_02256_03024_mask.nrrd",
"volume": ["02000_02256_03024_volume.nrrd"],
"segments": ["02000_02256_03024_20230702185753.obj"],
"z": 2000,
"y": 2256,
"x": 3024,
"size": 256
}
]
}
You can also put multiple volumes and then press the number key to compare them dynamically. For example, for the meta.json config as follow. You can switch between volume_A and volume_B when pressing 1 and 2 number key
, respectively.
{
"chunks": [
{
...
"volume": ["volume_A.nrrd", "volume_B.nrrd"],
...
}
]
}
For example, if you want to compare and visualize the intermediate states in ThaumatoAnakalyptor pipeline, you can turn those intermediate result into different nrrd data (in Unit8 format) and then visualize them in this way. Here's a small guide of how you can generate those data: