MipView is a lightweight Linux-first desktop viewer for .nii / .nii.gz medical images.
It is designed as a focused research tool for:
- ITK-SNAP inspired image viewing,
- segmentation overlay inspection,
- interactive patch selection,
- patch saving,
- patch-wise volumetric computation (e.g., normalization, standardization, filtering, etc.),
- orthogonal MIP / MinIP inspection of selected, modified patches.
MipView is intentionally minimal. The goal is to build a small, reliable viewer before adding more advanced features.
MipView is under active development, but the prototype is already here! Please have a try and share your feedback through GitHub issues.
Installed or packaged usage:
mipviewThis is the primary end-user launch command and the expected launch path for container and Neurodesk-style environments.
Local development from a repository checkout:
bash setup.sh
bash run.shsetup.sh is a development bootstrap helper. It creates or reuses a local .venv and installs the project from pyproject.toml. It is not the canonical container installation path.
Repository compatibility wrapper:
bash run.shrun.sh is a simple repository/dev wrapper. It tries the launch commands in this order:
- repo-local
.venv/bin/mipview mipviewonPATHPYTHONPATH=src python -m mipviewfor source checkouts
Or make it executable once:
chmod +x run.sh
./run.shSource-checkout fallback:
PYTHONPATH=src python -m mipviewExpected local development flow:
bash setup.shbash run.sh
Expected installed/container/Neurodesk flow:
- Install the package into the environment
- Launch with
mipview
Container / pip-based dependency install:
pip install -r requirements.txtThis requirements.txt mirrors the runtime dependencies used by the app and is intended for Docker-style installs. In installed/container environments, the intended launch command remains mipview.
CI note:
- GitHub Actions validates three install paths (
setup.sh,pip install -e ., andpip install -r requirements.txt) and runs a headless startup smoke test for each.
development: active feature development and testing branch.master: stable source branch for releases.- Pull requests should be merged from
developmentintomasterfor stable releases.
The current codebase is organized around a small top-level mipview package:
.
├── run.sh
├── setup.sh
├── requirements.txt
├── pyproject.toml
├── scripts/
│ └── bootstrap_helpers.sh
└── src/mipview/
├── __init__.py
├── __main__.py
├── main.py
├── annotation/
├── io/
│ └── nifti_io.py
├── patch/
│ ├── extractor.py
│ ├── history.py
│ ├── saver.py
│ └── selector.py
├── segmentation/
│ ├── models.py
│ └── validation.py
├── state/
├── tools/
├── ui/
└── viewer/
In practice, the main runtime flow is:
python -m mipviewenters throughmipview/__main__.py.main.pycreates the Qt application and main window.ui/main_window.pycoordinates loading, viewer updates, patch actions, segmentation overlay state, and tool execution.viewer/modules render slices and manage tri-planar interactions.state/,io/,patch/,segmentation/, andtools/provide the supporting logic behind those UI actions.