Skip to main content

A python package that upsample segmentated medical image

Project description

Segmentation Upsampler

This is a Python-based software for upsampling 3-dimensional segmented medical images using a mesh-based method. This method may be useful for reducing staircasing artifacts and increasing accuracy in medical image-derived ultrasound simulations, among other applications requiring accurate segmentation upsampling.

Installation

*The software is Python-based and MATLAB is used to generate sample shapes and run tests.

The software was developed in following environment:
Python version 3.9
MATLAB R2023b
Please check the compatibility of lateral Python versions using this link: https://www.mathworks.com/support/requirements/python-compatibility.html.

Python package Installation:
pip install numpy scipy vtk numba

MATLAB package:
k-Wave (http://www.k-wave.org/)

I/O

The algorithm accepts and returns the following variables:

Input:

originalImage: low resolution input image (binary 3D array - two labels, integer 3D array - more than two labels)
spacing: spacing of the original image (1 x 3 floating point array)
$dx$: scale of upsampling (scalar float for isotropic upsampling, 1 x 3 floating point array for an anisotropic medical image)
$\sigma$: the standard deviation for the Gaussian smoothing kernel (scalar float, recommended range: 0 - 1)
$I$: isovalue for isosurface extraction (scalar float, recommand range: 0.4 - 0.5)

Output:

newImage: high resolution output with defined spacing

Examples

example_multilabel_testobject.m upsamples a code-generated complex shape and compares it to a high-resolution code-generated ground truth.

example_vertebra.m resamples a medical image-based segementation of a human spine. Figure 1 depicts slices through the 3D spine volume, demonstrating the upsampling of a multi-label spine segmentation with input parameters $\sigma = 0.7$ and isovalue = 0.4. The input image is sourced from Liebl $et$ $al$. 2021 [^1]. This demonstration resamples the original anisotropic voxel spacing of [0.2910, 0.2910, 1.2500] millimetres to an isotropic [0.8, 0.8, 0.8] millimetre voxel spacing. Gap post-processing was not applied.

spineDemo

Figure 1: Mesh-based upsampling demonstration with a segmented spine (subverse003) from the Verse2020 spine segmentation dataset [^1].

example_AustinWoman_Kidney.m upsamples a segmented medical image of a kidney and surrounding organs from the female Visible Human Project dataset [^2] with input parameters $\sigma = 0.4$ and isovalue = 0.4. This demonstration upsamples the original voxel spacing of [1, 1, 1] millimetres to an isotropic [0.8, 0.8, 0.8] millimetre voxel spacing. Gap post-processing was applied.

liverDemo

Figure 2: Mesh-based upsampling demonstration with a kidney and surrounding organs from the female Visible Human Project dataset [^2].

Test

SinglelabelGridSearch.m provides a grid-search method to find optimal parameter ($\sigma$, isovalue) settings for upsampling a single-label code-based image. Mis-labelling errors are evaluated using a high-resolution code-based image.

MultilabelGridSearch.m provides a grid-search method to find optimal parameter ($\sigma$, isovalue) settings for upsampling a multi-label code-based image. Errors resulting from gaps between labels and volume differences are evaluated using a high-resolution code-based image.

methodComparsion.m provides a comparsion of the mesh-based upsampling method against naive (nearest-neighbour and trilinear interpolation) upsampling methods.

normalizationComparsion.m compares error metrics for evaluating the accuracy of the upsampled result using a high-resolution ground truth.

IsovalueVSVolume.m provides the variation of volume ratio against isovalue, which can be used by the user to select the isovalue based on the desired volume.

References

[^1]:Liebl, H., Schinz, D., Sekuboyina, A., Malagutti, L., Löffler, M. T., Bayat, A., ... & Kirschke, J. S. (2021). A computed tomography vertebral segmentation dataset with anatomical variations and multi-vendor scanner data. Scientific data, 8(1), 284. [^2]:Massey, J. W., & Yilmaz, A. E. (2016, August). AustinMan and AustinWoman: High-fidelity, anatomical voxel models developed from the VHP color images. In 2016 38th Annual International Conference of the IEEE Engineering in Medicine and Biology Society (EMBC) (pp. 3346-3349). IEEE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysegupsampler-0.0.1.tar.gz (26.5 kB view details)

Uploaded Source

Built Distribution

pySegUpsampler-0.0.1-py3-none-any.whl (31.3 kB view details)

Uploaded Python 3

File details

Details for the file pysegupsampler-0.0.1.tar.gz.

File metadata

  • Download URL: pysegupsampler-0.0.1.tar.gz
  • Upload date:
  • Size: 26.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.12

File hashes

Hashes for pysegupsampler-0.0.1.tar.gz
Algorithm Hash digest
SHA256 a9805933f4ab286db213d108882a067ba42bfc7449d0bedb49162ac664c71039
MD5 b5ce4dac2a836a9bc29df9f8be3545e2
BLAKE2b-256 8f9c05e0315b4b26e324b0e6cf80c26e846cf11de6c8ee27bd5a98e151936ee7

See more details on using hashes here.

File details

Details for the file pySegUpsampler-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for pySegUpsampler-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c388e52b2f808bb72bc73d5b13f6e6e49ad45d11e1786613c21ed777a793d348
MD5 4ddc0d4ca5386db1bb4f8ac2643e6595
BLAKE2b-256 80897a279addd4dcc3bf2f0ee6539071b24393dcedc89ed8b6ea18c13344953c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page