You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: docs/source/technical.rst
+9-69
Original file line number
Diff line number
Diff line change
@@ -1,18 +1,19 @@
1
1
Technical info
2
2
===============
3
3
4
-
This page outlines some technical information on the software. Mainly how everything works.
4
+
This page outlines some technical information on the software. Mainly how everything works. The text is largely based on version 1.2 and thus mainly features PET-related information in MATLAB. This page is still work in progress!
5
5
6
6
The general structure of OMEGA can be divided into three different layers. The top layer is the MATLAB/Octave/Python user-interface that contains the scripts and functions necessary to call the lower layers.
7
7
The middle layer is the MATLAB (C) MEX-interface or C++ dynamic library that calls and computes the C++ code and then sends it back to the top layer. The bottom layer, which is not always used, contains the OpenCL/CUDA kernels that
8
8
compute the OpenCL/CUDA code and then send the output data (reconstructed images) to the middle layer. The bottom layer is only used if OpenCL/CUDA code is used. The middle layer can also be ignored, but this is recommended only when
9
9
doing custom reconstructions in Python.
10
10
11
-
For the user, only the top layer is exposed. This is achieved in the form of scripts that are referred to as *main-files*. These include, for example, https://github.com/villekf/OMEGA/blob/master/main-files/PET_main_gateExample.m[``gate_main.m``],
12
-
https://github.com/villekf/OMEGA/blob/master/main-files/CT_main_full.m[``CT_main_full.m``], or https://github.com/villekf/OMEGA/blob/master/source/Python/gate_PET.py[``gate_PET.py``].
11
+
`GNU Octave <https://octave.org/>`_
12
+
For the user, only the top layer is exposed. This is achieved in the form of scripts that are referred to as *main-files*. These include, for example, `gate_main.m <https://github.com/villekf/OMEGA/blob/master/main-files/PET_main_gateExample.m>`_,
13
+
`CT_main_full.m <https://github.com/villekf/OMEGA/blob/master/main-files/CT_main_full.m>`_, or `gate_PET.py <https://github.com/villekf/OMEGA/blob/master/source/Python/gate_PET.py>`_.
13
14
It is from these main-files that the actual functions are called. This
14
15
is achieved by storing all the user selected parameters to a
15
-
MATLAB/Octave struct called ``options``, which is then input to the
16
+
MATLAB/Octave/Python struct called ``options`` in the example files (the name can be anything though), which is then input to the
16
17
functions (e.g. when loading data or performing image reconstruction).
17
18
18
19
In the main-files most parameters are set either with numerical values
@@ -23,74 +24,13 @@ it is omitted (e.g. ``randoms_correction``, ``scatter_smoothing``,
that control different aspects. Many of these sections are completely
25
26
optional, e.g. CORRECTIONS section can be omitted if the user does not
26
-
wish to use any corrections. The only compulsory ones are SCANNER
27
-
PROPERTIES and either SINOGRAM or RAW DATA PROPERTIES. For
28
-
reconstruction it is also advisable to inspect the RECONSTRUCTION
29
-
PROPERTIES section, but the default values should always output a
30
-
working OSEM estimate. By default all non-compulsory options are set as
31
-
false (with the exception of the Inveon main-file which has several
32
-
corrections enabled by default).
27
+
wish to use any corrections. The only compulsory items are the FOV size, the number of voxels per dimension, and the source/detector coordinates for each measurement (and the measurement data itself).
33
28
34
29
There are also several functions that work very independently without
35
30
the need for the main-files. These include file import and export
36
-
functions, visualization functions and many reconstruction algorithm
37
-
functions. For help on many of these functions, you should use
31
+
functions, and visualization functions. For help on many of these functions, you should use
38
32
``help function_name`` or alternatively ``doc function_name``. E.g.
39
-
``help saveImage``.
40
-
41
-
Technical aspects
42
-
=================
43
-
44
-
This section explains how, exactly, does each component of OMEGA
0 commit comments