API: [CCDProcessing.Log](apidoc/nabu.preproc.ccd.rst#nabu.preproc.ccd.Log) and [CudaLog](apidoc/nabu.preproc.ccd_cuda.rst#nabu.preproc.ccd_cuda.CudaLog)
API: [CCDProcessing.Log](apidoc/nabu.preproc.ccd.rst#nabu.preproc.ccd.Log) and [CudaLog](apidoc/nabu.preproc.ccd_cuda.rst#nabu.preproc.ccd_cuda.CudaLog)
### Sinogram normalization
Sinograms can sometimes be "messy" for various reasons. For example, a synchrotron beam refill can take place during the acquisition, and not be compensated properly by flats.
In this case, you can "normalize" the sinogram to get rid of defects. Currently, only a baseline removal is implemented.
Mind that you probably lose quantativeness by using this additional normalization !
Setting `coeff` to zero (default) disables unsharp masking.
Setting `coeff` to zero (default) disables unsharp masking.
## Reconstruction
## Reconstruction
Tomographic reconstruction is the process of reconstructing the volume from projections/sinograms.
Tomographic reconstruction is the process of reconstructing the volume from projections/sinograms.
...
@@ -107,6 +120,16 @@ The purpose of this class is to quickly reconstruct slices over the three main a
...
@@ -107,6 +120,16 @@ The purpose of this class is to quickly reconstruct slices over the three main a
The Reconstructor enables to reconstruct slices/region of interest without reconstructing the whole volume.
The Reconstructor enables to reconstruct slices/region of interest without reconstructing the whole volume.
## Post-processing
### Histogram
Nabu can compute the histogram of the reconstucted (sub-) volume. As the volume usually does not fit in memory, the histogram is computed by parts, and the final histogram is obtained by merging partial histograms.
API : [PartialHistogram](apidoc/nabu.misc.histogram.rst#nabu.misc.histogram.PartialHistogram) and [VolumeHistogram](apidoc/nabu.misc.histogram.rst#nabu.misc.histogram.VolumeHistogram)
## File formats
## File formats
### HDF5
### HDF5
...
@@ -118,7 +141,7 @@ When a [multi-stage reconstruction](nabu_cli.md) is performed, the volume is rec
...
@@ -118,7 +141,7 @@ When a [multi-stage reconstruction](nabu_cli.md) is performed, the volume is rec
### Tiff
### Tiff
Reconstruction can be saved as tiff files by specifying `file_format = tiff` in the configuration `[output]` section.
Reconstruction can be saved as tiff files by specifying `file_format = tiff` in the configuration `[output]` section.
In the current version (2020.3), tiff support has the following limitations:
Mind that tiff support currently has the following limitations:
- One file per slice
- One file per slice
- Data is saved as `float32` data type, no normalization
- Data is saved as `float32` data type, no normalization
- No metadata (configuration used to obtain the reconstruction, date, version,...)
- No metadata (configuration used to obtain the reconstruction, date, version,...)
...
@@ -126,7 +149,7 @@ In the current version (2020.3), tiff support has the following limitations:
...
@@ -126,7 +149,7 @@ In the current version (2020.3), tiff support has the following limitations:
### Jpeg2000
### Jpeg2000
Reconstruction can be saved as jpeg2000 files by specifying `file_format = jpeg2000` in the configuration `[output]` section.
Reconstruction can be saved as jpeg2000 files by specifying `file_format = jpeg2000` in the configuration `[output]` section.
In the current version (2020.3), jpeg2000 support has the following limitations:
Mind that jpeg2000 support currently has the following limitations:
- When exporting to `uint16` data type (mandatory for jpeg2000), the normalization from `float32` to `uint16` is done slice-wise instead of volume-wise. This is slightly less accurate.
- When exporting to `uint16` data type (mandatory for jpeg2000), the normalization from `float32` to `uint16` is done slice-wise instead of volume-wise. This is slightly less accurate.
- Only lossless compression is supported. In the future, compression will be tunable through Nabu configuration.
- Only lossless compression is supported. In the future, compression will be tunable through Nabu configuration.
- No metadata (configuration used to obtain the reconstruction, date, version,...)
- No metadata (configuration used to obtain the reconstruction, date, version,...)
...
@@ -138,6 +161,14 @@ In the current version (2020.3), jpeg2000 support has the following limitations:
...
@@ -138,6 +161,14 @@ In the current version (2020.3), jpeg2000 support has the following limitations:
Nabu provides a method to find the half-shift between two images. The center of axial vertical rotation is obtained when the fist image is a radiography at the rotation angle 0 and the second image is given by the radiography at the rotation angle 180 after flipping the image horizontally. The rotation axis position is the center of the image plus the found shift.
Nabu provides a method to find the half-shift between two images. The center of axial vertical rotation is obtained when the fist image is a radiography at the rotation angle 0 and the second image is given by the radiography at the rotation angle 180 after flipping the image horizontally. The rotation axis position is the center of the image plus the found shift.
Configuration file: section `[reconstruction]`, key `rotation_axis_position`. Values can be:
- A number (known CoR)
- Empty: the CoR is set to the middle of the detector
-`centered` (or `auto`): this searches for a CoR around the center, but does not work for half-acquisition
-`global`: new method, should return a CoR in any setting.