/segment-viewer

Segment Viewer for Vesuvius Challenge

Primary LanguageJavaScript

Segment Viewer

A web-based segment viewer for Vesuvius Challenge

Introduction

This is a web-based segment viewer which you can visualize the scroll data from Vesuvius Challenge on the top of Three.js library.

Install

Clone this repository

git clone https://github.com/tomhsiao1260/segment-viewer.git
cd segment-viewer

Setup a virtual environment and activate it

python -m venv env
source env/bin/activate

Install the reqired python packages

pip install -r requirements.txt

Download Node.js and install the required npm packages

cd client && npm install

Getting Started

We need to give this repo the data you want to see. Open config.json file in root directory and write down the corresponding config. TIF_INPUT and TIF_SMALL_INPUT is the .tif files directory. OBJ_INPUT is the segmentation .obj paths directory.

OBJ_INPUT : "../full-scrolls/Scroll1.volpkg/paths",
TIF_INPUT : "../full-scrolls/Scroll1.volpkg/volumes/20230205180739",
TIF_SMALL_INPUT : "../full-scrolls/Scroll1.volpkg/volumes_small/20230205180739"

And MAX_LAYER means number of layers in TIF_INPUT folder. WIDTH and HEIGHT are the pixel sizes of each .tif image.

MAX_LAYER: 14375
WIDTH: 8096
HEIGHT: 7888

There's a file called volume.py for converting the .tif data into multiple chunks which can be used for rendering via this application. Another file called segment.py which can handle segment .obj files we need. Let's run these python scripts. It may take a while. Once finished, you will find some .obj and .tif files generated in ./output/segment and ./output/volume folder, respectively.

python segment.py
python volume.py

Now, eveything is set. Let's serve this web application and navigate to http://localhost:5173/. It may take a few seconds to load assets, but hopefully you can see the results. Have fun!

cd client && npm run dev