aimstil  5.0.5
CTImage.h
Go to the documentation of this file.
1 #ifndef TIL_CTIMAGE_H
2 #define TIL_CTIMAGE_H
3 
4 /*
5 #ifdef __cplusplus
6 extern "C"
7 {
8 #endif
9 */
10 
11 #include <stdio.h>
12 
13 #include "til/til_common.h"
14 
15 
16 #define CT_TYPE_UCHAR 1
17 #define CT_TYPE_INT8 1
18 #define CT_TYPE_UINT16 2
19 #define CT_TYPE_USHORT 2
20 #define CT_TYPE_UINT32 3
21 #define CT_TYPE_FLOAT 4
22 #define CT_TYPE_DOUBLE 5
23 
24 /* Common functions */
25 TIL_API FILE *readCTImageHeader( char *filename, int *xs, int *ys, int *zs,
26  int *ctType, float *voxelSizeX, float *voxelSizeY, float *voxelSizeZ );
27 TIL_API void closeCTImage( FILE *fp, float voxelSizeX, float voxelSizeY, float voxelSizeZ );
28 
29 /* Int 8 */
30 TIL_API unsigned char *readCTImage8( char *filename, int *xs, int *ys, int *zs,
31  float *voxelSizeX, float *voxelSizeY, float *voxelSizeZ );
32 TIL_API unsigned char *readCTImage8ByNumber( FILE *fp, int slice, int xs, int ys );
33 TIL_API unsigned char *readCTImage8Sequentially( FILE *fp, int xs, int ys );
34 
35 TIL_API int writeCTImage8( char *filename,
36  unsigned char *sPtr, int xs, int ys, int zs,
37  float voxelSizeX, float voxelSizeY, float voxelSizeZ );
38 TIL_API FILE *writeCTImage8Header( char *filename,
39  unsigned char *sPtr, int xs, int ys, int zs );
40 TIL_API int writeCTImage8Sequentially( FILE *fp,
41  unsigned char *cPtr, int xs, int ys );
42 
43 /* Int16 */
44 TIL_API unsigned short *readCTImage16( char *filename, int *xs, int *ys, int *zs,
45  float *voxelSizeX, float *voxelSizeY, float *voxelSizeZ );
46 TIL_API unsigned short *readCTImage16ByNumber( FILE *fp, int slice, int xs, int ys );
47 TIL_API unsigned short *readCTImage16Sequentially( FILE *fp, int xs, int ys );
48 
49 TIL_API int writeCTImage16( char *filename,
50  unsigned short *sPtr, int xs, int ys, int zs,
51  float voxelSizeX, float voxelSizeY, float voxelSizeZ );
52 TIL_API FILE *writeCTImage16Header( char *filename, unsigned short *sPtr, int xs, int ys, int zs );
53 TIL_API int writeCTImage16Sequentially( FILE *fp,
54  unsigned short *sPtr, int xs, int ys );
55 
56 /* Int32 */
57 TIL_API unsigned int *readCTImage32( char *filename, int *xs, int *ys, int *zs,
58  float *voxelSizeX, float *voxelSizeY, float *voxelSizeZ );
59 TIL_API unsigned int *readCTImage32ByNumber( FILE *fp, int slice, int xs, int ys );
60 TIL_API unsigned int *readCTImage32Sequentially( FILE *fp, int xs, int ys );
61 
62 TIL_API int writeCTImage32( char *filename,
63  unsigned int *iPtr, int xs, int ys, int zs,
64  float voxelSizeX, float voxelSizeY, float voxelSizeZ );
65 TIL_API FILE *writeCTImage32Header( char *filename,
66  unsigned int *iPtr, int xs, int ys, int zs );
67 TIL_API int writeCTImage32Sequentially( FILE *fp,
68  unsigned int *iPtr, int xs, int ys );
69 
70 /* Float */
71 TIL_API float *readCTImageFloat( char *filename, int *xs, int *ys, int *zs,
72  float *voxelSizeX, float *voxelSizeY, float *voxelSizeZ );
73 TIL_API float *readCTImageFloatByNumber( FILE *fp, int slice, int xs, int ys );
74 TIL_API float *readCTImageFloatSequentially( FILE *fp, int xs, int ys );
75 
76 TIL_API int writeCTImageFloat( char *filename,
77  float *fPtr, int xs, int ys, int zs,
78  float voxelSizeX, float voxelSizeY, float voxelSizeZ );
79 TIL_API FILE *writeCTImageFloatHeader( char *filename,
80  float *fPtr, int xs, int ys, int zs );
82  float *fPtr, int xs, int ys );
83 
84 /* Double */
85 TIL_API double *readCTImageDouble( char *filename, int *xs, int *ys, int *zs,
86  float *voxelSizeX, float *voxelSizeY, float *voxelSizeZ );
87 TIL_API double *readCTImageDoubleByNumber( FILE *fp, int slice, int xs, int ys );
88 TIL_API double *readCTImageDoubleSequentially( FILE *fp, int xs, int ys );
89 
90 TIL_API int writeCTImageDouble( char *filename,
91  double *dPtr, int xs, int ys, int zs,
92  float voxelSizeX, float voxelSizeY, float voxelSizeZ );
93 TIL_API FILE *writeCTImageDoubleHeader( char *filename,
94  double *dPtr, int xs, int ys, int zs );
96  double *dPtr, int xs, int ys );
97 
98  /*
99 #ifdef __cplusplus
100 }
101 #endif*/
102 
103 #endif
104 
TIL_API int writeCTImage8Sequentially(FILE *fp, unsigned char *cPtr, int xs, int ys)
TIL_API float * readCTImageFloatByNumber(FILE *fp, int slice, int xs, int ys)
TIL_API int writeCTImage16(char *filename, unsigned short *sPtr, int xs, int ys, int zs, float voxelSizeX, float voxelSizeY, float voxelSizeZ)
TIL_API double * readCTImageDoubleSequentially(FILE *fp, int xs, int ys)
TIL_API int writeCTImageFloatSequentially(FILE *fp, float *fPtr, int xs, int ys)
TIL_API int writeCTImageDouble(char *filename, double *dPtr, int xs, int ys, int zs, float voxelSizeX, float voxelSizeY, float voxelSizeZ)
TIL_API float * readCTImageFloatSequentially(FILE *fp, int xs, int ys)
TIL_API FILE * writeCTImage32Header(char *filename, unsigned int *iPtr, int xs, int ys, int zs)
TIL_API unsigned char * readCTImage8Sequentially(FILE *fp, int xs, int ys)
General macros, definitions and functions.
TIL_API unsigned char * readCTImage8(char *filename, int *xs, int *ys, int *zs, float *voxelSizeX, float *voxelSizeY, float *voxelSizeZ)
#define TIL_API
Definition: til_common.h:42
TIL_API unsigned short * readCTImage16ByNumber(FILE *fp, int slice, int xs, int ys)
TIL_API unsigned int * readCTImage32Sequentially(FILE *fp, int xs, int ys)
TIL_API int writeCTImageDoubleSequentially(FILE *fp, double *dPtr, int xs, int ys)
TIL_API FILE * writeCTImage16Header(char *filename, unsigned short *sPtr, int xs, int ys, int zs)
TIL_API FILE * readCTImageHeader(char *filename, int *xs, int *ys, int *zs, int *ctType, float *voxelSizeX, float *voxelSizeY, float *voxelSizeZ)
TIL_API int writeCTImage8(char *filename, unsigned char *sPtr, int xs, int ys, int zs, float voxelSizeX, float voxelSizeY, float voxelSizeZ)
TIL_API FILE * writeCTImageFloatHeader(char *filename, float *fPtr, int xs, int ys, int zs)
TIL_API unsigned short * readCTImage16(char *filename, int *xs, int *ys, int *zs, float *voxelSizeX, float *voxelSizeY, float *voxelSizeZ)
TIL_API double * readCTImageDoubleByNumber(FILE *fp, int slice, int xs, int ys)
TIL_API int writeCTImageFloat(char *filename, float *fPtr, int xs, int ys, int zs, float voxelSizeX, float voxelSizeY, float voxelSizeZ)
TIL_API unsigned char * readCTImage8ByNumber(FILE *fp, int slice, int xs, int ys)
TIL_API unsigned int * readCTImage32ByNumber(FILE *fp, int slice, int xs, int ys)
TIL_API int writeCTImage16Sequentially(FILE *fp, unsigned short *sPtr, int xs, int ys)
TIL_API int writeCTImage32Sequentially(FILE *fp, unsigned int *iPtr, int xs, int ys)
TIL_API void closeCTImage(FILE *fp, float voxelSizeX, float voxelSizeY, float voxelSizeZ)
TIL_API FILE * writeCTImage8Header(char *filename, unsigned char *sPtr, int xs, int ys, int zs)
TIL_API double * readCTImageDouble(char *filename, int *xs, int *ys, int *zs, float *voxelSizeX, float *voxelSizeY, float *voxelSizeZ)
TIL_API unsigned short * readCTImage16Sequentially(FILE *fp, int xs, int ys)
TIL_API unsigned int * readCTImage32(char *filename, int *xs, int *ys, int *zs, float *voxelSizeX, float *voxelSizeY, float *voxelSizeZ)
TIL_API FILE * writeCTImageDoubleHeader(char *filename, double *dPtr, int xs, int ys, int zs)
TIL_API int writeCTImage32(char *filename, unsigned int *iPtr, int xs, int ys, int zs, float voxelSizeX, float voxelSizeY, float voxelSizeZ)
TIL_API float * readCTImageFloat(char *filename, int *xs, int *ys, int *zs, float *voxelSizeX, float *voxelSizeY, float *voxelSizeZ)