This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

MedPy is a library and script collection for medical image processing in Python, providing basic functionalities for reading, writing and manipulating large images of arbitrary dimensionality. Its main contributions are n-dimensional versions of popular image filters, a collection of image feature extractors, ready to be used with scikit-learn, and an exhaustive n-dimensional graph-cut package.

Troubles? Feel free to write me with any questions / comments / suggestions: oskar.maier@googlemail.com

Found a bug? https://github.com/loli/medpy/issues

Too many depoendencies? Try our docker images https://registry.hub.docker.com/u/loli/medpy/ (release) and https://registry.hub.docker.com/u/loli/medpy-autobuilds/ (development)

Installing MedPy the fast way (Ubuntu and derivatives)

First:

sudo apt-get install python-pip python-numpy python-scipy libboost-python-dev build-essential

Then:

sudo pip install nibabel pydicom medpy

Done. More installation instructions can be found in the documentation.

Getting started with the library

If you already have one, whose format is support (see in the documentation.), then good. Otherwise navigate to http://www.nitrc.org/projects/inia19, click on the Download Now button, unpack and look for the inia19-t1.nii file. Open it in your favorite medical image viewer (I personally fancy itksnap) and beware a the INIA19 primate brain atlas.

Load the image

>>> from medpy.io import load
>>> image_data, image_header = load('/path/to/image.xxx')

The data is stored in a numpy ndarray, the header is an object containing additional metadata, such as the voxel-spacing. No lets take a look at some of the image metadata

>>> image_data.shape
(168, 206, 128)
>>> image_data.dtype
dtype(float32)

And the header gives us

>>> from medpy.io import header
>>> header.get_pixel_spacing(image_header)
(0.5, 0.5, 0.5)
>>> header.get_offset(image_header)
(0.0, 0.0, 0.0)

Now lets apply one of the MedPy filter, more exactly the Otsu thresholding, which can be used for automatic background removal

>>> from medpy.filter import otsu
>>> threshold = otsu(image_data)
>>> output_data = image_data > threshold

And save the binary image, marking the foreground

>>> from medpy.io import save
>>> save(output_data, '/path/to/otsu.xxx', image_header)

After taking a look at it, you might want to dive deeper with the documentation.

Getting started with the library

Get an image as described above. Now:

medpy_info.py /path/to/image.xxx

will give you some details about the image. With:

medpy_diff.py /path/to/image1.xxx /path/to/image2.xxx

you can compare two image. And:

medpy_anisotropic_diffusion.py /path/to/image.xxx /path/to/output.xxx

lets you apply an edge preserving anisotropic diffusion filter. For a list of all scripts, see the documentation.

Read/write support for medical image formats

MedPy builds on 3rd party modules to load and save images. Currently implemented are the usages of

  • NiBabel
  • PyDicom
  • ITK

, each of which supports the following formats.

NiBabel enables support for:

  • NifTi - Neuroimaging Informatics Technology Initiative (.nii, nii.gz)
  • Analyze (plain, SPM99, SPM2) (.hdr/.img, .img.gz)
  • and some others more (http://nipy.sourceforge.net/nibabel/)

PyDicom enables support for:

  • Dicom - Digital Imaging and Communications in Medicine (.dcm, .dicom)

ITK enables support for:

  • NifTi - Neuroimaging Informatics Technology Initiative (.nii, nii.gz)
  • Analyze (plain, SPM99, SPM2) (.hdr/.img, .img.gz)
  • Dicom - Digital Imaging and Communications in Medicine (.dcm, .dicom)
  • Itk/Vtk MetaImage (.mhd, .mha/.raw)
  • Nrrd - Nearly Raw Raster Data (.nhdr, .nrrd)
  • and many others more (http://www.cmake.org/Wiki/ITK/File_Formats)

For some functionalities, which are collected in the medpy.itkvtk package ITK is also required.

Code

You can find our sources and single-click downloads:

Tutorials and API Documentation

http://pythonhosted.org/MedPy

Requirements

MedPy comes with a number of dependencies and optional functionality that can require you to install additional packages.

Dependencies

Recommendations

  • nibabel >= 1.3.0 (enables support for NIfTI and Analyze image formats)
  • pydicom >= 0.9.7 (enables support for DICOM image format)

Optional functionalities

  • compilation with max-flow/min-cut (enables the GraphCut functionalities)
  • itk >= 3.16.0 with WrapITK (enables support for a large number of image formats)

License

MedPy is distributed under the GNU General Public License, a version of which can be found in the LICENSE.txt file.

Release History

Release History

0.2.2

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
MedPy-0.2.2.tar.gz (167.1 kB) Copy SHA256 Checksum SHA256 Source Sep 19, 2014

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting