21 #ifndef cSTIR_INTERFACE 22 #define cSTIR_INTERFACE 24 #ifndef CSTIR_FOR_MATLAB 25 #define PTR_INT size_t 26 #define PTR_FLOAT size_t 27 #define PTR_DOUBLE size_t 31 #define PTR_FLOAT float* 32 #define PTR_DOUBLE double* 41 void* cSTIR_setVerbosity(
const int verbosity_ptr);
42 void* cSTIR_getVerbosity();
43 void* cSTIR_setOMPThreads(
const int threads);
44 void* cSTIR_getOMPThreads();
45 void* cSTIR_useDefaultOMPThreads();
46 void* cSTIR_getDefaultOMPThreads();
47 void* cSTIR_scannerNames();
50 void* cSTIR_newObject(
const char* name);
51 void* cSTIR_objectFromFile(
const char* name,
const char* filename);
52 void* cSTIR_setParameter
53 (
void* ptr,
const char* obj,
const char* name,
const void* value);
54 void* cSTIR_parameter(
const void* ptr,
const char* obj,
const char* name);
57 void* cSTIR_setListmodeToSinogramsInterval
58 (
void* ptr_acq, PTR_FLOAT ptr_data);
59 void* cSTIR_setListmodeToSinogramsFlag
60 (
void* ptr_lm2s,
const char* flag,
int v);
61 void* cSTIR_setupListmodeToSinogramsConverter(
void* ptr);
62 void* cSTIR_convertListmodeToSinograms(
void* ptr);
63 void* cSTIR_computeRandoms(
void* ptr);
64 void* cSTIR_lm_num_prompts_exceeds_threshold(
void* ptr,
const float threshold);
67 void* cSTIR_setupImageDataProcessor(
const void* ptr_p,
void* ptr_i);
68 void* cSTIR_applyImageDataProcessor(
const void* ptr_p,
void* ptr_d);
71 void* cSTIR_createPETAcquisitionSensitivityModel
72 (
const void* ptr_src,
const char* src);
73 void* cSTIR_createPETAttenuationModel
74 (
const void* ptr_img,
const void* ptr_am);
75 void* cSTIR_chainPETAcquisitionSensitivityModels
76 (
const void* ptr_first,
const void* ptr_second);
77 void* cSTIR_setupAcquisitionSensitivityModel(
void* ptr_sm,
void* ptr_ad);
78 void* cSTIR_applyAcquisitionSensitivityModel
79 (
void* ptr_sm,
void* ptr_ad,
const char* job);
80 void* cSTIR_setupAcquisitionModel(
void* ptr_am,
void* ptr_dt,
void* ptr_im);
81 void* cSTIR_linearAcquisitionModel(
void* ptr_am);
82 void* cSTIR_acquisitionModelNorm(
void* ptr_am,
int subset_num,
int num_subsets,
int num_iter,
int verb);
83 void* cSTIR_acquisitionModelFwd(
void* ptr_am,
void* ptr_im,
84 int subset_num,
int num_subsets);
85 void* cSTIR_acquisitionModelFwdReplace
86 (
void* ptr_am,
void* ptr_im,
int subset_num,
int num_subsets,
void* ptr_ad);
87 void* cSTIR_acquisitionModelBwd(
void* ptr_am,
void* ptr_ad,
88 int subset_num,
int num_subsets);
89 void* cSTIR_acquisitionModelBwdReplace(
void* ptr_am,
void* ptr_ad,
90 int subset_num,
int num_subsets,
void* ptr_im);
91 void* cSTIR_get_MatrixInfo(
void* ptr);
94 void* cSTIR_SPECTUBMatrixSetResolution
95 (
const void* ptr_acq_matrix,
96 const float collimator_sigma_0_in_mm,
const float collimator_slope_in_mm,
const bool full_3D);
99 void* cSTIR_getAcquisitionDataStorageScheme();
100 void* cSTIR_setAcquisitionDataStorageScheme(
const char* scheme);
101 void* cSTIR_acquisitionDataFromTemplate(
void* ptr_t);
102 void* cSTIR_cloneAcquisitionData(
void* ptr_ad);
103 void* cSTIR_rebinnedAcquisitionData(
void* ptr_t,
104 const int num_segments_to_combine,
105 const int num_views_to_combine,
106 const int num_tang_poss_to_trim,
107 const bool do_normalisation,
108 const int max_in_segment_num_to_process,
109 const int num_tof_bins_to_combine
111 void* cSTIR_acquisitionDataFromScannerInfo
112 (
const char* scanner,
int span,
int max_ring_diff,
int view_mash_factor,
int tof_mash_factor);
113 void* cSTIR_getAcquisitionDataDimensions(
const void* ptr_acq, PTR_INT ptr_dim);
114 void* cSTIR_getAcquisitionData(
const void* ptr_acq, PTR_FLOAT ptr_data);
115 void* cSTIR_setAcquisitionData(
void* ptr_acq, PTR_FLOAT ptr_data);
116 void* cSTIR_fillAcquisitionData(
void* ptr_acq,
float v);
117 void* cSTIR_fillAcquisitionDataFromAcquisitionData
118 (
void* ptr_acq,
const void * ptr_from);
119 void* cSTIR_writeAcquisitionData(
void* ptr_acq,
const char* filename);
120 void* cSTIR_get_ProjDataInfo(
void* ptr_acq);
121 void* cSTIR_get_subset(
void* ptr_acq,
int nv,
size_t ptr_views);
124 void* cSTIR_setupFBP2DReconstruction(
void* ptr_r,
void* ptr_i);
125 void* cSTIR_runFBP2DReconstruction(
void* ptr_r);
126 void* cSTIR_setupReconstruction(
void* ptr_r,
void* ptr_i);
127 void* cSTIR_runReconstruction(
void* ptr_r,
void* ptr_i);
128 void* cSTIR_updateReconstruction(
void* ptr_r,
void* ptr_i);
130 void* cSTIR_scatterSimulatorFwd(
void* ptr_am,
void* ptr_im);
131 void* cSTIR_scatterSimulatorFwdReplace(
void* ptr_am,
void* ptr_im,
void* ptr_ad);
132 void* cSTIR_setupScatterSimulator(
void* ptr_am,
void* ptr_ad,
void* ptr_im);
133 void* cSTIR_setupScatterEstimator(
void* ptr_r);
134 void* cSTIR_runScatterEstimator(
void* ptr_r);
137 void* cSTIR_setupObjectiveFunction(
void* ptr_r,
void* ptr_i);
138 void* cSTIR_subsetSensitivity(
void* ptr_f,
int subset);
139 void* cSTIR_objectiveFunctionValue(
void* ptr_f,
void* ptr_i);
140 void* cSTIR_objectiveFunctionGradient
141 (
void* ptr_f,
void* ptr_i,
int subset);
142 void* cSTIR_objectiveFunctionGradientNotDivided
143 (
void* ptr_f,
void* ptr_i,
int subset);
146 void* cSTIR_setupPrior(
void* ptr_p,
void* ptr_i);
147 void* cSTIR_priorValue(
void* ptr_p,
void* ptr_i);
148 void* cSTIR_priorGradient(
void* ptr_p,
void* ptr_i);
149 void* cSTIR_PLSPriorGradient(
void* ptr_p,
int dir);
152 void* cSTIR_getImageDimensions(
const void* ptr, PTR_INT ptr_data);
153 void* cSTIR_getImageVoxelSizes(
const void* ptr_im, PTR_FLOAT ptr_vs);
154 void* cSTIR_getImageTransformMatrix(
const void* ptr_im, PTR_FLOAT ptr_md);
155 void* cSTIR_getImageData(
const void* ptr, PTR_FLOAT ptr_data);
156 void* cSTIR_setImageData(
void* ptr_im, PTR_FLOAT ptr_data);
157 void* cSTIR_setImageDataFromImage(
void* ptr_im,
const void* ptr_src);
158 void* cSTIR_voxels3DF(
int nx,
int ny,
int nz,
159 float sx,
float sy,
float sz,
float x,
float y,
float z);
160 void* cSTIR_imageFromVoxels(
void* ptr_v);
161 void* cSTIR_imageFromImage(
void* ptr_v);
162 void* cSTIR_imageFromImageData(
void* ptr_v);
163 void* cSTIR_imageFromAcquisitionData(
void* ptr_ad);
164 void* cSTIR_imageFromAcquisitionDataAndNxNy(
void* ptr_ad,
int nx,
int ny);
165 void* cSTIR_fillImage(
void* ptr_i,
float v);
166 void* cSTIR_addShape(
void* ptr_i,
void* ptr_s,
float v,
int num_samples_in_each_direction);
167 void* cSTIR_writeImage(
void* ptr_i,
const char* filename);
168 void* cSTIR_writeImage_par(
void* ptr_i,
const char* filename,
const char* par);
169 void* cSTIR_ImageData_zoom_image(
void* ptr_im,
170 const PTR_FLOAT zooms_ptr_raw,
171 const PTR_FLOAT offsets_in_mm_ptr_raw,
172 const PTR_INT new_sizes_ptr_raw,
173 const char *
const zoom_options);
174 void* cSTIR_ImageData_move_to_scanner_centre(
void* im_ptr,
const void* acq_data_ptr);
177 void* newTextPrinter(
const char* stream);
178 void* newTextWriter(
const char* stream);
179 void openChannel(
int channel,
void* ptr_w);
180 void closeChannel(
int channel,
void* ptr_w);
181 void* deleteTextPrinter(
void* ptr);
182 void* deleteTextWriter(
void* ptr_w);
184 #ifndef CSTIR_FOR_MATLAB