121 #define LIB_NAME "libtpcimgio"
124 #define LIB_VERSION "1.5.10"
127 #define COPYRIGHT "(c) 2005-2011 by Turku PET Centre"
139 "Build "__DATE__
" "__TIME__
"\n"
142 "PET Image IO library\n"
143 "-------------------------------------------------------------------------------\n"
148 fputs(
"Libtpcimgio is distributed under the GNU Lesser General Public Licence\n"
149 "http://www.gnu.org/licenses/lgpl.html\n"
150 "More information on open source licences: http://www.opensource.org/\n"
153 "-------------------------------------------------------------------------------\n"
155 "The libtpcimgio library is a collection of commonly used C files in Turku PET Centre\n"
156 "for image file input and output procedures. Libtpcimgio library supports Analyze 7.5,\n"
157 "Ecat 6.x, Ecat 7.x and partly interfile formats.\n"
159 fputs(
"List of files\n"
160 "-------------------------------------------------------------------------------\n"
162 "include/ - Includes all the header files for the .c files\n"
164 "Makefile - The makefile\n"
168 "analyze.c - reading and writing Analyze 7.5 image files.\n"
170 "ecat63ml.c - Procedures for ECAT 6.3 matrix list.\n"
172 fputs(
"ecat63p.c - Printing ECAT 6.3 headers.\n"
174 "ecat63r.c - Reading ECAT 6.3 files.\n"
176 "ecat63w.c - Writing ECAT 6.3 files.\n"
178 "ecat7ml.c - Procedures for ECAT 7.x matrix list.\n"
180 "ecat7p.c - Printing ECAT 7.x headers.\n"
182 "ecat7h.c - Edit ECAT 7.x headers.\n"
184 "ecat7r.c - Reading ECAT 7.x files.\n"
186 fputs(
"ecat7w.c - Writing ECAT 7.x files.\n"
188 "img.c - Procedures for 4D image data (common to all image file formats).\n"
190 "img_ana.c - Subprocedures for reading/writing Analyze 7.5 files to/from IMG.\n"
192 "img_e63.c - Subprocedures for reading/writing ECAT 6.3 files to/from IMG.\n"
194 "img_e7.c - Subprocedures for reading/writing ECAT 7 files to/from IMG.\n"
196 "imgdecay.c - Decay correction, isotope codes, and half-lives.\n"
198 "imgfile.c - Main procedures for IMG read/write.\n"
200 fputs(
"imgmax.c - Procedures for searching IMG min and max value.\n"
202 "imgunit.c - Procedures for working with IMG calibration unit.\n"
204 "interfile.c - Reading Interfile headers.\n"
206 "micropet.c - Reading Inveon images.\n"
208 "sif.c - Routines for Scan Information Files (SIF).\n"
210 "sifio.c - Functions for reading and writing SIF format files.\n"
212 "vol.c - Procedures for 3D image volume data (no time information).\n"
214 "weight.c - Functions for setting weight factors based on SIF.\n"
216 fputs(
"libtpcimgio.c - Program for printing Readme and History information, and for\n"
217 " testing the library functions.\n"
219 "libtpcimgiov.c- Version information for this library.\n"
222 "Using the library\n"
223 "-------------------------------------------------------------------------------\n"
225 "The program that uses the library should include the .h file it needs.\n"
227 " \\#include <img.h>\n"
229 "libtpcimgio depends on libtpcmisc.\n"
231 " gcc myprog.c -ltpcimgio -ltpcmisc\n"
243 fputs(
"2005-01-04 1.0.0 Vesa Oikonen, Calle Laakkonen, Riku Klén, Jarkko Johansson\n"
244 " Former libpet, the common PET C library, has been divided up in smaller\n"
245 " sublibraries that each handle a specific task. This library includes functions\n"
246 " utilised in image file input and output procedures. \n"
248 "2005-03-03 1.0.0 Jarkko Johansson \n"
249 " imgproc.[c/h] moved to libtpcimgp library\n"
251 "2005-04-05 1.0.1 (krs) Roman Krais\n"
252 " interfile.c added (for reading interfile headers)\n"
254 "2005-04-25 1.1.0 Jarkko Johansson\n",fp);
255 fputs(
" History and Readme files included in new print functions:\n"
256 " libtpcimgio_print_readme(FILE *fp);\n"
257 " libtpcimgio_print_history(FILE *fp);\n"
258 " libtpcimgio_print_dreadme(FILE *fp);\n"
259 " libtpcimgio_print_dhistory(FILE *fp);\n"
260 " libtpcimgio_print_build(FILE *fp);\n"
261 " in file libtpcimgio.c. Update the the Readme and History\n"
264 " Compiled in Windows with MinGW.\n"
266 "2005-05-04 1.1.0 JJ\n"
267 " Minor changes in file sifio.c.\n"
269 "2005-08-01 1.1.1 CL/JJ\n",fp);
270 fputs(
" Changed image loading/writing functions fname to const,\n"
271 " and extern int VOL_TEST to int VOL_TEST.\n"
273 "2005-10-10 1.1.2 CL\n"
274 " imgWriteAnalyze() now writes only 1 frame at a time,\n"
275 " conserving memory.\n"
277 "2005-11-21 1.1.3 VO\n"
278 " lambda2factor() now calculates correctly when removing\n"
279 " decay correction considering frame lengths.\n"
281 "2005-12-12 1.1.4 VO\n"
282 " imgReadAnalyze() sets img.isotopeHalflife,\n"
283 " if isotope is found in SIF.\n"
285 fputs(
"2006-10-31 1.1.5 VO\n"
286 " Added function imgUnitId().\n"
287 " Fixed a timezone bug with ECAT7 files.\n"
289 "2006-12-28 1.1.6 VO\n"
290 " Changes in identification of isotope codes.\n"
292 "2007-02-02 1.2.0 VO\n"
293 " Additions in IMG structure, and subsequent changes in i/o functions.\n"
294 " Isotope and halflife related functions are relocated into libtpcmisc.\n"
295 " This library is now independent of libtpcimgp.\n",fp);
296 fputs(
" IMG min and max search functions are relocated here.\n"
297 " User_process_code is read/written with ECAT7 and ECAT6.3 files.\n"
298 " Patient_id is read/written with ECAT7 and ECAT6.3 files.\n"
299 " Study_description is read/written with ECAT7 and ECAT6.3 files.\n"
300 " X, y and z resolution is read/written with ECAT7 images.\n"
301 " Prompts and randoms (delayed) are read/written with ECAT7 and\n"
302 " ECAT6.3 sinograms and read from SIF with Analyze 7.5.\n",fp);
303 fputs(
" Changes in identifying and processing calibration units.\n"
305 "2007-02-11 1.2.1 VO\n"
306 " Addition in IMG structure.\n"
307 " Deleted imgmsg.h. Set IMG.statmsg using imgSetStatus().\n"
309 "2007-02-27 1.2.2 VO\n"
310 " Bug corrections.\n"
312 "2007-03-13 1.2.3 VO\n"
313 " Added ECAT matrix list functions and error messages.\n"
314 " ECAT 6.3 header print format changed.\n"
316 fputs(
"2007-03-21 1.2.4 VO\n"
317 " Changes to make easier to write ECAT7 2D files.\n"
319 "2007-03-25 1.2.5 VO\n"
320 " Addition of functions for reading and writing ECAT and Analyze\n"
321 " format one frame at a time.\n"
323 "2007-04-03 1.3.0 VO\n"
324 " Added support for ECAT7 polar maps.\n"
325 " Information for polar map added to IMG struct.\n"
327 "2007-07-17 1.3.1 Harri Merisaari\n"
328 " Modified for optional ANSI compatibility.\n"
330 "2007-09-10 1.3.2 VO\n"
331 " Bug correction in setting error messages.\n"
332 " Bug correction in reading some too long header text fields.\n"
334 "2007-09-10 1.3.3 VO\n"
335 " Return value of localtime() is always checked.\n"
337 fputs(
"2007-09-11 1.3.4 VO\n"
338 " Corrected a bug affecting versions 1.3.1 -1.3.3:\n"
339 " Analyze and ECAT files could have been mixed if in same folder.\n"
341 "2007-09-12 1.3.5 VO\n"
342 " Corrected a bug affecting frame-by-frame reading of\n"
343 " ECAT7 2D image files.\n"
345 "2008-07-07 1.3.6 VO\n"
346 " Image decay correction functions return error if frame times\n"
348 " Assumes that Analyze 7.5 images are corrected for decay when\n"
349 " that information is not found in header file.\n"
351 "2008-07-11 1.3.7 VO\n"
352 " Added function sifModerate().\n"
354 "2008-07-14 1.3.8 VO\n"
355 " Added function imgAllocateWithHeader().\n"
357 "2008-07-24 1.3.9 VO\n"
358 " Added functions ecat7EditMHeader(), ecat7EditSHeader(),\n"
359 " ecat7EditVHeader(), imgSetUnit(), and ecat7PrintSubheader().\n"
361 "2008-09-02 1.4.0 VO\n"
362 " Default ECAT backup extension changed to .bak.\n"
364 "2008-10-03 1.4.1 VO\n"
365 " Accepts certain Analyze formats with 32 bit pixel values.\n"
367 "2008-10-09 1.4.2 VO\n"
368 " Accepts more Analyze formats with 32 bit pixel values (PVElab).\n"
370 fputs(
"2008-11-06 1.4.3 VO\n"
371 " Bug correction in reading ECAT 6.3 files.\n"
373 "2009-02-17 1.5.0 VO\n"
374 " Added definitions for Siemens Inveon in img.h.\n"
375 " Added micropet.c and .h for reading Siemens Inveon images.\n"
377 "2009-02-25 1.5.1 VO\n"
378 " Changes in micropet.c and .h to allow reading CT images.\n"
380 "2009-04-06 1.5.2 VO\n"
381 " Changes in sif.c to allow SIF without prompts and randoms.\n"
383 "2009-09-28 1.5.3 VO\n"
384 " Change in micropet.c reading pixel z size.\n"
386 "2009-12-01 1.5.4 VO\n"
387 " Added function imgSmoothMax().\n"
389 "2009-12-10 1.5.5 VO\n"
390 " Tiny update in img_ana.c.\n"
392 "2010-02-12 1.5.6 VO\n"
393 " Time zone is corrected in imgSetEcat7MHeader().\n"
395 "2010-05-11 1.5.7 VO\n"
396 " imgUnitFromEcat7() tries more to identify units.\n"
398 "2010-08-19 1.5.8 VO\n"
399 " ECAT7 main header field patient_birth_date is read correctly\n"
400 " whether is is in documented YYYYMMDD format or as seconds from\n"
401 " start of years 1970.\n"
403 "2011-01-11 1.5.9 VO\n"
404 " Bug fixes in reading micropet images.\n"
406 "2011-02-04 1.5.10 VO\n"
407 " Label unitless was previously not written in main header\n"
408 " when IMG data is written in ECAT7 format.\n"
422 fprintf(fp,
"\n</PRE> \n */\n");
432 fprintf(fp,
"/**\n\\page History\n\\section history History\n<PRE>\n");
434 fprintf(fp,
"\n</PRE> \n */\n");
444 fprintf(fp,
"\n Build %s %s\n",__DATE__,__TIME__);
445 #ifdef __STRICT_ANSI__
446 fprintf(fp,
"\nANSI compatible build\n");
void libtpcimgio_print_build(FILE *fp)
void libtpcimgio_print_readme(FILE *fp)
void libtpcimgio_print_dhistory(FILE *fp)
void libtpcimgio_print_history(FILE *fp)
void libtpcimgio_printdate(FILE *fp)
void libtpcimgio_print_dreadme(FILE *fp)