Giter VIP home page Giter VIP logo

image-registration's Introduction

image-registration

A MATLAB library/toolbox providing access to image registration, initially developed for use with medical images.

Copyright

Copyright (c) 2015 Daniel Forsberg [email protected]

About

This toolbox was written during my PhD at Linköping University, Sweden. However, although developed during that time, it doesn't contain so much of the specifics that I researched during my PhD. Rather it contains a general framework for image registration in MATLAB. The toolbox supports the following features:

  • 2D and 3D registration
  • Symmetric registration
  • Translation, rigid and affine registration (parametric)
  • Non-rigid registration (non-parametric) with support for ** Fluid and elastic regularization (not really but often called so) ** Additive, compositive and diffeomorphic accumulation of the update field ** Registration in the Log-domain
  • All this using either optical-flow based registration (demons in the non-rigid case), phase-difference based registration (the Morphon in the non-rigid case) and polynomial expansion based registration.
  • Use of certainty fields for controlling areas of influence during the registration process (only in the case of phase-difference based registration)

Specifics of my thesis are rather found in separate toolboxes, to be made available at my GitHub account.

Setup

To use the code available in this repository, add the following lines to your startup.m file.

addpath('path-to-this-repository')

setup_image_registration_repository();

The last line will make sure to compile included mex-files and keep them up to date.

If you don't have a startup.m file, create it from startupsav.m. Run the 'userpath' function to determine where MATLAB looks for the startup.m file.

Note that this library is dependent on my matlab-utilities repository, available from https://github.com/fordanic/matlab-utilities and assumes it to already be installed and available on the MATLAB path. If not available then you will be offered during setup to download needed external dependencies.

Best way to test the setup of the toolbox is to run registration_example2d or registration_example3d. Type help registration_example2d or help registration_example3d to see some of the parameters that can be set. Use these examples as a starting point when setting up to run your own registration.

Content

This section provides a brief overview of the content in the different folders

external - This folder contains code from external sources

registration - This folder contains functions for image registration

test-data - This folder contains data for testing the registration.

visualization - This folder contains functions related to visualization of the registration process

Adding folders

When adding a new folder in the base folder make sure to update this file.

Coding standard

Basic guidelines for a simple coding standard are given in the document "Matlab Programming Style Guidelines.pdf", available in the matlab-utilities repository.

Adding m-files

To create a suitable file header for new M-files, use the function create_new_m_function, available in the matlab-utilities repository.

Licensing

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Source code provided in this repository is generally released under the GNU GENERAL PUBLIC LICENSE Version 3, if not otherwise stated.

image-registration's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.