|
TPCCLIB
|
Median Root Prior image reconstruction from PET sinogram. More...
#include "libtpcrec.h"Go to the source code of this file.
Functions | |
| int | imgMRP (IMG *scn, IMG *img, int imgDim, float zoom, float shiftX, float shiftY, float rotation, int maxIterNr, int skipPriorNr, float beta, int maskDim, int osSetNr, int verbose) |
| void | mrpUpdate (float *coef, float *img, float *oimg, int n) |
| void | mrpProjectionCorrection (float *measured, float *proj, float *correct, int os_sets, int rays, int views) |
| int | mrp (float *sinogram, int rays, int views, int iter, int os_sets, int maskdim, float zoom, float beta, int skip_prior, int dim, float *image, int verbose) |
Median Root Prior image reconstruction from PET sinogram.
Based on the program mrprec (Jun 1997) written by Sakari Alenius for Sun UNIX workstations. Reference: Alenius S, Ruotsalainen U 'Bayesian image reconstruction for emission tomography based on median root prior', EJNM, vol. 24 no. 3, Mar 1997.
Definition in file mrp.c.
| int imgMRP | ( | IMG * | scn, |
| IMG * | img, | ||
| int | imgDim, | ||
| float | zoom, | ||
| float | shiftX, | ||
| float | shiftY, | ||
| float | rotation, | ||
| int | maxIterNr, | ||
| int | skipPriorNr, | ||
| float | beta, | ||
| int | maskDim, | ||
| int | osSetNr, | ||
| int | verbose ) |
Median Root Prior (MRP) reconstruction using data in IMG struct.
| scn | Sinogram (input) data. Data must be normalization and attenuation corrected. |
| img | Image (output) data; allocated here. |
| imgDim | Image dimension (size, usually 128 or 256); must be an even number. |
| zoom | Zoom factor (for example 2.45 for the brain); 1=no zooming. |
| shiftX | Possible shifting in x dimension (mm). |
| shiftY | Possible shifting in y dimension (mm). |
| rotation | Possible image rotation, -180 - +180 (in degrees). |
| maxIterNr | Nr of iterations, for example 150. |
| skipPriorNr | Number of iterations to skip before prior; usually 1. |
| beta | Beta, 0.01 - 0.9; usually 0.3 for emission, 0.9 for transmission. |
| maskDim | Median filter mask dimension; 3 or 5 (9 or 21 pixels). |
| osSetNr | Number of Ordered Subset sets; 1, 2, 4, ... 128. |
| verbose | Verbose level; if zero, then nothing is printed to stderr or stdout. |
Definition at line 21 of file mrp.c.
| int mrp | ( | float * | sinogram, |
| int | rays, | ||
| int | views, | ||
| int | iter, | ||
| int | os_sets, | ||
| int | maskdim, | ||
| float | zoom, | ||
| float | beta, | ||
| int | skip_prior, | ||
| int | dim, | ||
| float * | image, | ||
| int | verbose ) |
Median Root Prior (MRP) reconstruction of one 2D data matrix given as an array of floats.
| sinogram | Pointer to float array containing rays*views sinogram values. Data must be normalization and attenuation corrected. |
| rays | Nr of rays (bins or columns) in sinogram data. |
| views | Nr of views (rows) in sinogram data. |
| iter | Nr of iterations. |
| os_sets | Length of ordered subset process order array; 1, 2, 4, ... 128. |
| maskdim | Mask dimension; 3 or 5 (9 or 21 pixels). |
| zoom | Reconstruction zoom. |
| beta | Beta. |
| skip_prior | Number of iteration before prior; usually 1. |
| dim | Image x and y dimensions; must be an even number, preferably the same as number of rays, but there is no reason for it to be any larger than that. |
| image | Pointer to pre-allocated image data; size must be at least dim*dim. |
| verbose | Verbose level; if zero, then nothing is printed to stderr or stdout. |
Definition at line 262 of file mrp.c.
Referenced by imgMRP().
| void mrpProjectionCorrection | ( | float * | measured, |
| float * | proj, | ||
| float * | correct, | ||
| int | os_sets, | ||
| int | rays, | ||
| int | views ) |
Calculate correction factors for EM-ML reconstruction. These factors will we back-projected over the image in order to get the ML-coefficients.
Divides the measured projection (sinogram) by the re-projected ray sum. If the divisor is close to zero, the factor is set to 0. The factor is not allowed to exceed a limit or to be negative.
| measured | Measured sinogram data. |
| proj | Projection data. |
| correct | Correction matrix. |
| os_sets | Number of OS sets. |
| rays | Sinogram rays. |
| views | Sinogram views. |
Definition at line 229 of file mrp.c.
Referenced by mrp().
| void mrpUpdate | ( | float * | coef, |
| float * | img, | ||
| float * | oimg, | ||
| int | n ) |
Update an image according to a set of coefficients.
Performs a pixel-by-pixel multiplication between the current image and the coefficients. The result is non-negative.
| coef | Pointer to an array of coefficients, of length n. |
| img | Pointer to an array containing source image data, of length n. |
| oimg | Pointer to an array containing output image data, of length n. |
| n | Array lengths |
Definition at line 201 of file mrp.c.
Referenced by mrp().