29 printf(
"sif2img(sif, img, %d, %d, %d, ...)\n", copy_header, copy_frames, copy_counts);
30 if(img==NULL || sif==NULL)
return 1;
33 if(verbose>1) printf(
" copying header.\n");
43 if(verbose>1) printf(
" copying frame times.\n");
45 for(
int fi=0; fi<img->
dimt; fi++) {
47 img->
end[fi]=sif->
x2[fi];
53 if(verbose>1) printf(
" copying count data.\n");
55 if(sif->
colNr<4)
return(4);
56 for(
int fi=0; fi<img->
dimt; fi++) {
87 printf(
"img2sif(img, sif, %d, %d, %d, ...)\n", copy_header, copy_frames, copy_counts);
90 if(img==NULL || sif==NULL)
return(1);
91 if(img->
dimt<1)
return(1);
95 if(verbose>0) printf(
" image does not contain frame times.\n");
99 if(copy_counts==2) copy_counts=1;
108 if(verbose>0) printf(
" image does not contain isotope halflife.\n");
110 if(copy_counts==2) copy_counts=1;
114 if((copy_frames || copy_counts) && sif->
frameNr!=img->
dimt) {
120 if(verbose>1) printf(
" copying header fields.\n");
133 if(verbose>1) printf(
" copying frame times.\n");
134 for(
int fi=0; fi<img->
dimt; fi++) {
141 if(verbose>1) printf(
" creating count data.\n");
144 for(
int fi=0; fi<img->
dimt; fi++) {
146 for(
int k=0; k<img->
dimz; k++)
147 for(
int j=0; j<img->
dimy; j++)
148 for(
int i=0; i<img->
dimx; i++)
if(isfinite(img->
m[k][j][i][fi])) {
149 v+=img->
m[k][j][i][fi];
152 if(pxlNr>0) v/=(double)pxlNr;
157 for(
int fi=0; fi<img->
dimt; fi++)
162 double lambda, cf, dur;
164 for(
int fi=0; fi<img->
dimt; fi++) {
167 if(cf>0.0) sif->
trues[fi]*=cf;
171 double v=sif->
trues[0];
176 for(
int fi=0; fi<sif->
frameNr; fi++) {
182 }
else if(copy_counts!=0) {
183 if(verbose>1) printf(
" copying count data.\n");
184 for(
int fi=0; fi<img->
dimt; fi++) {
double hl2lambda(double halflife)
double hlLambda2factor(double lambda, double frametime, double framedur)
double hlFromIsotope(char *isocode)
int imgExistentTimes(IMG *img)
int imgExistentCounts(IMG *img)
int img2sif(IMG *img, SIF *sif, int copy_header, int copy_frames, int copy_counts, int verbose)
int sif2img(SIF *sif, IMG *img, int copy_header, int copy_frames, int copy_counts, int verbose)
char * imgIsotope(IMG *img)
Header file for libtpcimgio.
int sifSetmem(SIF *data, int frameNr)
size_t strlcpy(char *dst, const char *src, size_t dstsize)
char studyNr[MAX_STUDYNR_LEN+1]
char studynr[MAX_STUDYNR_LEN+1]