-
Notifications
You must be signed in to change notification settings - Fork 118
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
in preparation of a release.
- Loading branch information
Showing
2 changed files
with
59 additions
and
57 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
elastix 4.9 compiles with ITK 4.11 compiled with the default options. | ||
elastix 4.9 compiles with ITK 4.13.0 compiled with the default options. | ||
|
||
|
||
Optionally use ITK_USE_64BITS_IDS and ITK_LEGACY_REMOVE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -1087,13 +1087,12 @@ \section{Introduction}\label{sec:elastix:intro} | |
what & where \\ | ||
\hline | ||
Website & \url{http://elastix.isi.uu.nl} \\ | ||
SVN repository & \url{https://svn.bigr.nl/elastix/trunkpublic} \\ | ||
GIT repository & \url{https://github.com/SuperElastix/elastix} \\ | ||
Dashboard & \url{http://my.cdash.org/index.php?project=elastix} \\ | ||
WIKI & \url{http://elastix.isi.uu.nl/wiki.php} \\ | ||
WIKI & \url{https://github.com/SuperElastix/elastix/wiki} \\ | ||
FAQ & \url{http://elastix.isi.uu.nl/FAQ.php} \\ | ||
Mailing list subscription & | ||
\url{http://lists.bigr.nl/mailman/listinfo/elastix} \\ | ||
Mailing list & \url{[email protected]} | ||
Mailing list & | ||
\url{https://groups.google.com/forum/#!forum/elastix-imageregistration} | ||
\end{tabular} | ||
\end{table} | ||
|
||
|
@@ -1167,7 +1166,13 @@ \subsection{Getting started the really easy way} | |
The easiest way to get started with \elastix\ is to use the | ||
pre-compiled binaries. | ||
\begin{enumerate} | ||
\item Download the compressed archive from the website: | ||
\item Download the compressed archive. From \elastix\ v4.9.0 onwards | ||
the binaries can be found at GitHub: | ||
\begin{quote} | ||
\url{https://github.com/SuperElastix/elastix/releases} | ||
\end{quote} | ||
|
||
Binaries for \elastix\ v4.8.0 and earlier can be found at: | ||
\begin{quote} | ||
\url{http://elastix.isi.uu.nl/download.php} | ||
\end{quote} | ||
|
@@ -1204,37 +1209,33 @@ \subsection{Getting started the easy way} | |
\begin{enumerate} | ||
\item Download and install CMake: \url{www.cmake.org}. | ||
|
||
\item Download and compile the ITK version 4.11: \url{www.itk.org}. Make | ||
sure to set the following (advanced) CMake variable to \texttt{ON}: | ||
\texttt{Module\_ITKReview}, and optionally \texttt{ITK\_USE\_64BITS\_IDS} | ||
\item Download and compile the ITK version 4.13.0: \url{www.itk.org}. | ||
Optionally set the following (advanced) CMake variables to | ||
\texttt{ON}: \texttt{ITK\_USE\_64BITS\_IDS} | ||
and \texttt{ITK\_LEGACY\_REMOVE}. For faster building of ITK | ||
you can switch off \texttt{BUILD\_EXAMPLES} and | ||
\texttt{BUILD\_TESTING}. | ||
|
||
\item Obtain the sources. There are three possibilities: | ||
\begin{enumerate} | ||
\item Download the compressed sources from the website. Extract the | ||
\item Download the compressed sources from GitHub. Extract the | ||
archive to \texttt{<your-elastix-folder>} of your choice. | ||
\item Use \texttt{subversion} (\url{https://subversion.tigris.org}) | ||
to check out the release from the subversion repository: | ||
\begin{verbatim} | ||
svn co --username elastixguest --password elastixguest | ||
https://svn.bigr.nl/elastix/tagspublic/elastix_XX_X <your-elastix-folder> | ||
\end{verbatim} | ||
where XX\_X is the major version number (first 2 digits) and the | ||
minor version number (1 digit). So, for example, for version | ||
4.9 this would be 04\_9. | ||
\item Use \texttt{subversion} to check out the latest development | ||
version. NB: this version might be unstable! | ||
\begin{verbatim} | ||
svn co --username elastixguest --password elastixguest | ||
https://svn.bigr.nl/elastix/trunkpublic <your-elastix-folder> | ||
\end{verbatim} | ||
\item Use \texttt{git} (\url{https://git-scm.com/}) | ||
to clone the release from the GitHub repository: | ||
\begin{verbatim} | ||
git clone https://github.com/SuperElastix/elastix.git <your-elastix-folder> | ||
\end{verbatim} | ||
\item Checkout the release you are interested in: | ||
\begin{verbatim} | ||
git checkout v4.9.0 | ||
\end{verbatim} | ||
\item Follow the \texttt{develop} branch for the latest development. | ||
NB: this version might be unstable! | ||
\end{enumerate} | ||
|
||
\item Run CMake for \elastix: | ||
\begin{enumerate} | ||
\item Windows: start CMake. Find the \texttt{src} folder with the | ||
\item Windows: start CMake. Find the folder with the | ||
source code. Set the folder where you want the binaries to be | ||
created. Click ``Configure'' and select the compiler that you | ||
use. Set the \texttt{CMAKE\_INSTALL\_PREFIX} to the directory | ||
|
@@ -1736,7 +1737,7 @@ \subsection{Transform}\label{sec:transformtuning} | |
\texttt{(AutomaticScalesEstimation "true")}\footnote{The | ||
implementation is given in | ||
%\verb=elastix\src\Core\ComponentBaseClasses\elxTransformBase.hxx=} | ||
\texttt{elastix$\backslash$src$\backslash$Core$\backslash$ComponentBaseClasses$\backslash$elxTransformBase.hxx}}. | ||
\texttt{elastix$\backslash$Core$\backslash$ComponentBaseClasses$\backslash$elxTransformBase.hxx}}. | ||
Always start with a rigid or affine transformation before doing a | ||
nonrigid one, to get a good initial alignment. | ||
|
||
|
@@ -2623,9 +2624,9 @@ \section{Relation to ITK} | |
that the low-level functionality (image classes, memory allocation | ||
etc.) is thoroughly tested. Naturally, all image formats supported | ||
by the ITK are supported by \elastix\ as well. The C++ source code | ||
can be compiled on multiple operating systems (Windows XP, Linux, | ||
Mac OS X), using various compilers (MS Visual Studio, GCC), and | ||
supports both 32 and 64 bit systems. | ||
can be compiled on multiple operating systems (Windows, Linux, Mac | ||
OS X), using various compilers (MS Visual Studio, GCC), and supports | ||
both 32 and 64 bit systems. | ||
|
||
In addition to the existing ITK image registration classes, | ||
\elastix\ implements new functionality. The most important | ||
|
@@ -2688,25 +2689,25 @@ \section{Overview of the \elastix\ code} | |
layer B wrapper needs to be written, which connects the layer A | ||
class to the other parts of \elastix. | ||
|
||
The image samplers, for example, are implemented as ITK classes that all | ||
inherit from a base class \texttt{itk::ImageSamplerBase}. These can be found in | ||
\texttt{src/Common/ImageSamplers}. This is ``layer A'' in \elastix. For each | ||
sampler (random, grid, full... ) a wrapper is written, located in | ||
\texttt{src/Components/ImageSamplers}, which takes care of configuring the | ||
sampler before each new resolution of the registration process. This is ``layer | ||
B'' of \elastix. | ||
The image samplers, for example, are implemented as ITK classes that | ||
all inherit from a base class \texttt{itk::ImageSamplerBase}. These | ||
can be found in \texttt{Common/ImageSamplers}. This is ``layer A'' | ||
in \elastix. For each sampler (random, grid, full... ) a wrapper is | ||
written, located in \texttt{Components/ImageSamplers}, which takes | ||
care of configuring the sampler before each new resolution of the | ||
registration process. This is ``layer B'' of \elastix. | ||
|
||
\subsection{Directory structure} | ||
|
||
The basic directory structure is as follows: | ||
\begin{itemize} | ||
\item dox | ||
\item src/Common: ITK classes, Layer A stuff. This directory also contains | ||
\item Common: ITK classes, Layer A stuff. This directory also contains | ||
some external libraries, unrelated to ITK, like xout (which is written | ||
by us) and the ANNlib. | ||
\item src/Core: this is the main \elastix\ kernel, responsible for the | ||
\item Core: this is the main \elastix\ kernel, responsible for the | ||
execution flow, connecting the classes, reading parameters etc. | ||
\item src/Components: this directory contains the components and their | ||
\item Components: this directory contains the components and their | ||
\elastix\ wrappers (layer B). Very component-specific layer A code can | ||
also be found here. | ||
\end{itemize} | ||
|
@@ -2775,21 +2776,21 @@ \section{Using \elastix\ in your own software} | |
|
||
\subsection{Including \elastix\ code in your own software}\label{ssec:dev:include} | ||
|
||
You may find some \elastix\ classes useful to integrate in your own project. | ||
For example, if you are developing a new \elastix\ component and first would | ||
like to test it outside elastix (see Section \ref{sec:dev:newcomp}. In such a | ||
case, you could of course copy the required \elastix\ files to your own | ||
project, or set the include-paths manually, but this would not be very | ||
convenient. | ||
You may find some \elastix\ classes useful to integrate in your own | ||
project. For example, if you are developing a new \elastix\ | ||
component and first would like to test it outside \elastix\ (see | ||
Section \ref{sec:dev:newcomp}. In such a case, you could of course | ||
copy the required \elastix\ files to your own project, or set the | ||
include-paths manually, but this would not be very convenient. | ||
|
||
To make it easier, a \texttt{UseElastix.cmake} file is generated in the | ||
\elastix\ binary directory. You can include this in the \texttt{CMakeLists.txt} | ||
file of your own project, and CMake will make sure that all necessary | ||
include\_directories are set. Also, you can link to the \elastix\ libraries, | ||
such as elxCommon, to avoid recompiling code. | ||
|
||
An example of this can be found in the directory \texttt{dox/externalproject} | ||
of the elastix source distribution. | ||
An example of this can be found in the directory | ||
\texttt{dox/externalproject} of the \elastix\ source distribution. | ||
|
||
\subsection{Using \elastix\ as a library}\label{ssec:dev:library} | ||
|
||
|
@@ -3028,21 +3029,22 @@ \section{Creating new components}\label{sec:dev:newcomp} | |
\end{verbatim} | ||
\end{quote} | ||
The \texttt{ADD\_ELXCOMPONENT} command is a macro defined in | ||
\texttt{src/Components/CMakeLists.txt}. The first argument is the name of the | ||
layer B wrapper class, which is declared in ``elxAdvancedMeanSquaresMetric.h''. | ||
After that, you can specify the source files on which the component relies. In | ||
the example above, the files that start with ``itk'' form the layer A code. | ||
Files that start with ``elx'' are the layer B code. The file | ||
``elxAdvancedMeanSquaresMetric.cxx'' is particularly simple. It just consists | ||
of two lines: | ||
\texttt{Components/CMakeLists.txt}. The first argument is the name | ||
of the layer B wrapper class, which is declared in | ||
``elxAdvancedMeanSquaresMetric.h''. After that, you can specify the | ||
source files on which the component relies. In the example above, | ||
the files that start with ``itk'' form the layer A code. Files that | ||
start with ``elx'' are the layer B code. The file | ||
``elxAdvancedMeanSquaresMetric.cxx'' is particularly simple. It just | ||
consists of two lines: | ||
\begin{quote} | ||
\begin{verbatim} | ||
#include "elxAdvancedMeanSquaresMetric.h" | ||
elxInstallMacro( AdvancedMeanSquaresMetric ); | ||
\end{verbatim} | ||
\end{quote} | ||
The \texttt{elxInstallMacro} is defined in | ||
\texttt{src/Core/Install/elxMacro.h}. | ||
\texttt{Core/Install/elxMacro.h}. | ||
|
||
The files \texttt{elxAdvancedMeanSquaresMetric.h/hxx} together define the layer | ||
B wrapper class. That class inherits from the corresponding layer A class, but | ||
|