#################################
Image registration with imagedata
#################################
|Docs Badge| |buildstatus| |coverage| |pypi|
Helper modules to do
image registration for `Imagedata` **Series** objects.
Available modules
#################
NPreg
-----
`NPreg` by Erlend Hodneland is implemented in Python,
and available as a self-supported PyPi package.
There are three implementations of `NPreg`:
* Pure Python/NumPy code. Source code will run on any Python platform.
* Cython code. Binary code compiled for supported platforms.
* CuPy/CUDA code. Source code which will run on platforms with a working `CuPy` and CUDA Toolkit.
FSL
---
`FSL`
(https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FSL)
has several methods for image registration.
Using `FSL` image registration from Python requires the `FSL` interface from
nipype, as well as a the `FSL` executables.
Each `FSL` method may have different requirements.
The common factor is that `FSL` methods will read and write NIfTI image files.
A function `register_fsl` is provided here.
This function will register a moving Series to a fixed Series.
The default registration method is fsl.MCFLIRT.
The function will accept other registration methods.
ITK Elastix
-----------
The popular `Elastix` GUI is based on the C++ `ITK` image registration routines.
Like the `FSL` methods, there are numerous `Elastix` methods available, all with
different requirements.
The `SimpleElastix`
(https://simpleelastix.readthedocs.io/index.html)
Python library is one particular interface to the `Elastix/ITK` routines.
Prerequisites
#############
NPreg on CUDA GPU
-----------------
imagedata-registration will benefit from a CUDA GPU. If this is available,
install `CuPy` (https://docs.cupy.dev).
* First, install the `CUDA Toolkit`: see https://developer.nvidia.com/cuda-toolkit.
* There are different options for installing `CuPy`. See:
https://docs.cupy.dev/en/stable/install.html
FSL
---
The imagedata-registration FSL module is a wrapper around the official FSL tools.
A native FSL installation is required on the host computer.
SimpleElastix
-------------
SimpleElastix must be installed separately:
.. code-block::
pip install SimpleITK-SimpleElastix
Installation
############
.. code-block::
pip install imagedata-registration
Examples
########
`NPreg examples <docs/NPreg.rst>`_
`FSL examples <docs/FSL.rst>`_
`SimpleElastix examples <docs/SimpleElastix.rst>`_
.. |Docs Badge| image:: https://readthedocs.org/projects/imagedata_registration/badge/
:alt: Documentation Status
:scale: 100%
:target: https://imagedata_registration.readthedocs.io
.. |buildstatus| image:: https://github.com/erling6232/imagedata_registration/actions/workflows/build_wheels.yml/badge.svg
:target: https://github.com/erling6232/imagedata_registration/actions?query=branch%3Amain
:alt: Build Status
.. _buildstatus: https://github.com/erling6232/imagedata_registration/actions
.. |coverage| image:: https://codecov.io/gh/erling6232/imagedata_registration/branch/main/graph/badge.svg?token=1OPGNXJ8Z3
:alt: Coverage
:target: https://codecov.io/gh/erling6232/imagedata_registration
.. |pypi| image:: https://img.shields.io/pypi/v/imagedata-registration.svg
:target: https://pypi.python.org/pypi/imagedata-registration
:alt: PyPI Version
Raw data
{
"_id": null,
"home_page": "",
"name": "imagedata-registration",
"maintainer": "",
"docs_url": null,
"requires_python": "<3.13,>=3.8",
"maintainer_email": "Erling Andersen <Erling.Andersen@Helse-Bergen.NO>",
"keywords": "python,medical,imaging,image registration",
"author": "",
"author_email": "Erling Andersen <Erling.Andersen@Helse-Bergen.NO>, Erlend Hodneland <Erlend.Hodneland@uib.no>",
"download_url": "",
"platform": null,
"description": "#################################\nImage registration with imagedata\n#################################\n\n|Docs Badge| |buildstatus| |coverage| |pypi|\n\n\nHelper modules to do\nimage registration for `Imagedata` **Series** objects.\n\nAvailable modules\n#################\n\nNPreg\n-----\n\n`NPreg` by Erlend Hodneland is implemented in Python,\nand available as a self-supported PyPi package.\nThere are three implementations of `NPreg`:\n\n* Pure Python/NumPy code. Source code will run on any Python platform.\n* Cython code. Binary code compiled for supported platforms.\n* CuPy/CUDA code. Source code which will run on platforms with a working `CuPy` and CUDA Toolkit.\n\nFSL\n---\n\n`FSL`\n(https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FSL)\nhas several methods for image registration.\nUsing `FSL` image registration from Python requires the `FSL` interface from\nnipype, as well as a the `FSL` executables.\nEach `FSL` method may have different requirements.\nThe common factor is that `FSL` methods will read and write NIfTI image files.\n\nA function `register_fsl` is provided here.\nThis function will register a moving Series to a fixed Series.\nThe default registration method is fsl.MCFLIRT.\nThe function will accept other registration methods.\n\nITK Elastix\n-----------\n\nThe popular `Elastix` GUI is based on the C++ `ITK` image registration routines.\nLike the `FSL` methods, there are numerous `Elastix` methods available, all with\ndifferent requirements.\nThe `SimpleElastix`\n(https://simpleelastix.readthedocs.io/index.html)\nPython library is one particular interface to the `Elastix/ITK` routines.\n\nPrerequisites\n#############\n\nNPreg on CUDA GPU\n-----------------\n\nimagedata-registration will benefit from a CUDA GPU. If this is available,\ninstall `CuPy` (https://docs.cupy.dev).\n\n* First, install the `CUDA Toolkit`: see https://developer.nvidia.com/cuda-toolkit.\n\n* There are different options for installing `CuPy`. See:\n https://docs.cupy.dev/en/stable/install.html\n\nFSL\n---\n\nThe imagedata-registration FSL module is a wrapper around the official FSL tools.\nA native FSL installation is required on the host computer.\n\nSimpleElastix\n-------------\n\nSimpleElastix must be installed separately:\n\n.. code-block::\n\n pip install SimpleITK-SimpleElastix\n\nInstallation\n############\n\n.. code-block::\n\n pip install imagedata-registration\n\nExamples\n########\n\n`NPreg examples <docs/NPreg.rst>`_\n\n`FSL examples <docs/FSL.rst>`_\n\n`SimpleElastix examples <docs/SimpleElastix.rst>`_\n\n\n.. |Docs Badge| image:: https://readthedocs.org/projects/imagedata_registration/badge/\n :alt: Documentation Status\n :scale: 100%\n :target: https://imagedata_registration.readthedocs.io\n\n.. |buildstatus| image:: https://github.com/erling6232/imagedata_registration/actions/workflows/build_wheels.yml/badge.svg\n :target: https://github.com/erling6232/imagedata_registration/actions?query=branch%3Amain\n :alt: Build Status\n\n.. _buildstatus: https://github.com/erling6232/imagedata_registration/actions\n\n.. |coverage| image:: https://codecov.io/gh/erling6232/imagedata_registration/branch/main/graph/badge.svg?token=1OPGNXJ8Z3\n :alt: Coverage\n :target: https://codecov.io/gh/erling6232/imagedata_registration\n\n.. |pypi| image:: https://img.shields.io/pypi/v/imagedata-registration.svg\n :target: https://pypi.python.org/pypi/imagedata-registration\n :alt: PyPI Version\n\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "Image registration routines for Imagedata",
"version": "0.2.4",
"project_urls": {
"Changelog": "https://github.com/erling6232/imagedata_registration/CHANGELOG.rst",
"Documentation": "https://imagedata_registration.readthedocs.io",
"SourceCode": "https://github.com/erling6232/imagedata_registration"
},
"split_keywords": [
"python",
"medical",
"imaging",
"image registration"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "05fce694bfbe248d2a621bc3015c0dc5a5d56b4d95b4045785368338770fa3e3",
"md5": "024ac6517860abec09193d722f1440d3",
"sha256": "c8f86ff3564734ce80cdd60f69e6e1fc69410d339785c910982552caf2a0dd45"
},
"downloads": -1,
"filename": "imagedata_registration-0.2.4-cp310-cp310-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "024ac6517860abec09193d722f1440d3",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<3.13,>=3.8",
"size": 285083,
"upload_time": "2024-03-11T12:41:42",
"upload_time_iso_8601": "2024-03-11T12:41:42.806432Z",
"url": "https://files.pythonhosted.org/packages/05/fc/e694bfbe248d2a621bc3015c0dc5a5d56b4d95b4045785368338770fa3e3/imagedata_registration-0.2.4-cp310-cp310-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c3b00e29138d8c5e52d1754a2b958da2481f6a2a6b27b17827eee58663eb198d",
"md5": "665dcfa9acd28188871d9ec21fb75834",
"sha256": "c713200dee8f343b0e2178d83ea1431ac0688267e6017f8dc11c928117964a6b"
},
"downloads": -1,
"filename": "imagedata_registration-0.2.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "665dcfa9acd28188871d9ec21fb75834",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<3.13,>=3.8",
"size": 1182682,
"upload_time": "2024-03-11T12:41:44",
"upload_time_iso_8601": "2024-03-11T12:41:44.875780Z",
"url": "https://files.pythonhosted.org/packages/c3/b0/0e29138d8c5e52d1754a2b958da2481f6a2a6b27b17827eee58663eb198d/imagedata_registration-0.2.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "dc44a10b364b61e840984c34cfabb4d55c2b405fb96108421f6409cdff913fc2",
"md5": "67414cc888b30ed431d4b6964c21c0c6",
"sha256": "1624720a9e6432dc174fcc692ba518a72405ab84b32ce0c27fb76bd0f6656efa"
},
"downloads": -1,
"filename": "imagedata_registration-0.2.4-cp311-cp311-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "67414cc888b30ed431d4b6964c21c0c6",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<3.13,>=3.8",
"size": 283787,
"upload_time": "2024-03-11T12:41:46",
"upload_time_iso_8601": "2024-03-11T12:41:46.322534Z",
"url": "https://files.pythonhosted.org/packages/dc/44/a10b364b61e840984c34cfabb4d55c2b405fb96108421f6409cdff913fc2/imagedata_registration-0.2.4-cp311-cp311-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e64644e54a4bf7381b06d8175c5c468d182a00c42d31560859a3a09d59252b88",
"md5": "7b5cbbc0044e68d807a3aa23fc2518cb",
"sha256": "f5f0127b3ad3e84c61ab260ea9ca786b994a22cccf01d3d9887c2ebbbd38fa69"
},
"downloads": -1,
"filename": "imagedata_registration-0.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "7b5cbbc0044e68d807a3aa23fc2518cb",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<3.13,>=3.8",
"size": 1308721,
"upload_time": "2024-03-11T12:41:48",
"upload_time_iso_8601": "2024-03-11T12:41:48.565052Z",
"url": "https://files.pythonhosted.org/packages/e6/46/44e54a4bf7381b06d8175c5c468d182a00c42d31560859a3a09d59252b88/imagedata_registration-0.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c009f0279bc0d38714d1e0608f1b6778b8cbaa7d131a048552094edb7185e6a0",
"md5": "ec3bfc521c8d253af2231c447e47bb43",
"sha256": "7ac1f98f16be8cdc0a2879fbd095d8f93cab2a20aeec10fd0ddf830082519fc5"
},
"downloads": -1,
"filename": "imagedata_registration-0.2.4-cp312-cp312-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "ec3bfc521c8d253af2231c447e47bb43",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.13,>=3.8",
"size": 276003,
"upload_time": "2024-03-11T12:41:50",
"upload_time_iso_8601": "2024-03-11T12:41:50.017632Z",
"url": "https://files.pythonhosted.org/packages/c0/09/f0279bc0d38714d1e0608f1b6778b8cbaa7d131a048552094edb7185e6a0/imagedata_registration-0.2.4-cp312-cp312-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "43229f91e9f072e5d9da1a4563d00f195ff224d30a7edb80c95f0a315303d999",
"md5": "29f8eaaeff9d056abb94f51cfad5adf4",
"sha256": "b9c63a581d0230d52aaebd4c9e97d08b41ad687af3621666f8525b40da80f168"
},
"downloads": -1,
"filename": "imagedata_registration-0.2.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "29f8eaaeff9d056abb94f51cfad5adf4",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.13,>=3.8",
"size": 1381149,
"upload_time": "2024-03-11T12:41:52",
"upload_time_iso_8601": "2024-03-11T12:41:52.143671Z",
"url": "https://files.pythonhosted.org/packages/43/22/9f91e9f072e5d9da1a4563d00f195ff224d30a7edb80c95f0a315303d999/imagedata_registration-0.2.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9bf87db62aa61367d0cd51f32c3b0ba1d70c25d6755e71c864fd3914bf348e47",
"md5": "30f327241c944d3379d99f35de91fabe",
"sha256": "d78c37ecf0f97f62a657fa95cab6ac45c5b5d3e1288919ccfadd63cd093c74ac"
},
"downloads": -1,
"filename": "imagedata_registration-0.2.4-cp38-cp38-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "30f327241c944d3379d99f35de91fabe",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": "<3.13,>=3.8",
"size": 285373,
"upload_time": "2024-03-11T12:41:53",
"upload_time_iso_8601": "2024-03-11T12:41:53.555005Z",
"url": "https://files.pythonhosted.org/packages/9b/f8/7db62aa61367d0cd51f32c3b0ba1d70c25d6755e71c864fd3914bf348e47/imagedata_registration-0.2.4-cp38-cp38-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4a7c17ef8d8b63d466616a32accc1ce716655cdfaf57116188de75c4479e5ae2",
"md5": "c3ba4af2724a0c0ef469412a7eacfa80",
"sha256": "afad3d199e6456d6a7d5a72c416d540e593c2bc00b1de59a72b8d0238bff2ddf"
},
"downloads": -1,
"filename": "imagedata_registration-0.2.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "c3ba4af2724a0c0ef469412a7eacfa80",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": "<3.13,>=3.8",
"size": 1221626,
"upload_time": "2024-03-11T12:41:56",
"upload_time_iso_8601": "2024-03-11T12:41:56.020996Z",
"url": "https://files.pythonhosted.org/packages/4a/7c/17ef8d8b63d466616a32accc1ce716655cdfaf57116188de75c4479e5ae2/imagedata_registration-0.2.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d56fecbcf4215829600022a735f1df586e499324cbc9895afe4f27a83a435ee1",
"md5": "cab4f19a75c8cd63b7e2f803939fee94",
"sha256": "7fd0b2958cf96f2e9d36f3745478b3938a7f87e4dab394fd2f9a13520aad7393"
},
"downloads": -1,
"filename": "imagedata_registration-0.2.4-cp39-cp39-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "cab4f19a75c8cd63b7e2f803939fee94",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "<3.13,>=3.8",
"size": 285774,
"upload_time": "2024-03-11T12:41:58",
"upload_time_iso_8601": "2024-03-11T12:41:58.085704Z",
"url": "https://files.pythonhosted.org/packages/d5/6f/ecbcf4215829600022a735f1df586e499324cbc9895afe4f27a83a435ee1/imagedata_registration-0.2.4-cp39-cp39-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1e0fb4914ea7fe4e8552682112f42b7924e79c22be82830abe1f0f0db47fc62f",
"md5": "558867a750fe3227f4d9cdfe2c412a22",
"sha256": "05d7eef25232e2062109b28b16517efa263f341ca575079b1df73c677bc16fd9"
},
"downloads": -1,
"filename": "imagedata_registration-0.2.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "558867a750fe3227f4d9cdfe2c412a22",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "<3.13,>=3.8",
"size": 1185888,
"upload_time": "2024-03-11T12:41:59",
"upload_time_iso_8601": "2024-03-11T12:41:59.466577Z",
"url": "https://files.pythonhosted.org/packages/1e/0f/b4914ea7fe4e8552682112f42b7924e79c22be82830abe1f0f0db47fc62f/imagedata_registration-0.2.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-11 12:41:42",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "erling6232",
"github_project": "imagedata_registration",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "imagedata-registration"
}