VIP: Volume Image Processing


TivoliIO_volume.h
Go to the documentation of this file.
1/*****************************************************************************
2 * PROJECT : V.I.P. Library
3 * MODULE NAME : vip/TivoliIO_volume.h* TYPE : Header
4 * AUTHOR : see below * CREATION : 27/04/1994
5 * VERSION : 0.1 * REVISION :
6 * LANGUAGE : C * EXAMPLE :
7 * DEVICE : Sun SPARC Station 5
8 *****************************************************************************
9 *
10 * DESCRIPTION : cree le 27/04/94 par geraud@ima.enst.fr
11 * modifie le 17/03/95
12 *
13 * Copyright (c) 1994
14 * Dept. IMA TELECOM Paris
15 * 46, rue Barrault F-75634 PARIS Cedex 13
16 * All Rights Reserved
17 *
18 * This file groups general utility functions used allover the
19 * tivoli library. Please contact B.V. before adding additional
20 * functions.
21 *
22 *****************************************************************************
23 *
24 * USED MODULES :
25 *
26 *****************************************************************************
27 * REVISIONS : DATE | AUTHOR | DESCRIPTION
28 *--------------------|--------------|----------------------------------------
29 * / / | |
30 *****************************************************************************/
31
32
33#ifndef VIP_TIVOLI_VOLUME_H
34#define VIP_TIVOLI_VOLUME_H
35
36
39
40
41/* volume limitation */
42
43/*bnew: changed from 2048 to 4096 */
44#define IMAGE_MAXSIZE 4096 /* maximum of (Volume*)->size. */
45#define BORDER_MAXWIDTH 16 /* maximum of (Volume*)->borderWidth */
46#define NAME_MAXLEN 1024U /* maximum of volume name */
47
48
49
50#ifdef __cplusplus
51extern "C" {
52#endif
53
54
55/* region of interest structure */
56typedef struct {
57 int x1, x2, y1, y2, z1, z2, t1, t2, state;
58 } Roi;
59
60/* volume structure removed because of vip/structure.h*/
61
62
63/* macro for volume declaration */
64
65#define DECL_VOLUME(aVolumePtr) Volume *aVolumePtr = NULL
66
67
68
69#ifdef MEMORYMAP
70/* memory mapping threshold: only use memory mapping for volumes greater
71 than this threshold (in bytes) */
72#define MEMORYMAP_THRESHOLD 10
73#endif
74
75/* volume input-output specification in functions */
76 /*redefine in VIP...
77#define SAME_VOLUME 100
78#define NEW_VOLUME 101
79*/
80
81
82/* constant for the field (Volume*)->type */
83
84#define U8BIT 10 /* 8 bit unsigned integer */
85#define S8BIT 11 /* 8 bit signed integer */
86#define U16BIT 20 /* 16 bit unsigned integer */
87#define S16BIT 21 /* 16 bit signed integer */
88#define U32BIT 40 /* 32 bit unsigned integer */
89#define S32BIT 41 /* 32 bit signed integer */
90#define VFLOAT 400 /* simple precision real */
91#define VDOUBLE 800 /* double precision real */
92
93
94
95/* corresponding C declaration type */
96
97typedef unsigned char U8BIT_t;
98typedef char S8BIT_t;
99typedef unsigned short U16BIT_t;
100typedef short S16BIT_t;
101typedef unsigned long U32BIT_t;
102typedef long S32BIT_t;
103typedef float F32BIT_t;
104typedef float FLOAT_t;
105typedef double F64BIT_t;
106typedef double DOUBLE_t;
107
108typedef char ANY_t; /* any type above */
109
110
111
112
113/*============================================*
114 | |
115 | printing functions (print to stdout) |
116 | |
117 *============================================*/
118/*----------------------------------------------------------------------------*/
119/* extern
120 void printfvolume*/
121/*
122 print the nxnxn voxel values nearest from the first volume point (mode 0)
123 or from the last point (mode 1)
124*/
125/*----------------------------------------------------------------------------*/
126/*(
127 Volume *volume,
128 int n,
129 int mode
130);*/
131
132/*----------------------------------------------------------------------------*/
133void printfError ( char *s );
134void printfWarning ( char *s );
135void printfInfo ( char *s );
136/*----------------------------------------------------------------------------*/
137
138
139
140
141
142
143/*=================================================*
144 | |
145 | testing functions (return 0 (PB) on failure) |
146 | |
147 *================================================*/
148
149/*----------------------------------------------------------------------------*/
150 extern
152/*
153 test if volume contains significant information (caracteristics and/or
154 data) ; this function is called by all the following ones
155*/
156/*----------------------------------------------------------------------------*/
157(
158 Volume *volume
159);
160/*----------------------------------------------------------------------------*/
161 extern
163/*
164 idem for n volumes
165*/
166/*----------------------------------------------------------------------------*/
167(
168 int n, ...
169);
170
171
172/*----------------------------------------------------------------------------*/
173 extern
175/*
176 test if the volume type is the one specified
177*/
178/*----------------------------------------------------------------------------*/
179(
180 Volume *volume,
181 int type
182);
183
184
185/*----------------------------------------------------------------------------*/
186 extern
188/*
189 test if the volume type is one of the list of n
190*/
191/*----------------------------------------------------------------------------*/
192(
193 Volume *volume,
194 int n, ...
195);
196
197
198/*----------------------------------------------------------------------------*/
199 extern
201/*
202 test if the volume contains significant data
203*/
204/*----------------------------------------------------------------------------*/
205(
206 Volume *volume
207);
208
209
210/*----------------------------------------------------------------------------*/
211 extern
213/*
214 test if both volumes have the same dimensions (size.x .y .z and .t)
215*/
216/*----------------------------------------------------------------------------*/
217(
218 Volume *volume1,
219 Volume *volume2
220);
221
222
223/*----------------------------------------------------------------------------*/
224 extern
226/*
227 test if both volumes have the same dimensions (size.x and .y)
228*/
229/*----------------------------------------------------------------------------*/
230(
231 Volume *volume1,
232 Volume *volume2
233);
234
235
236/*----------------------------------------------------------------------------*/
237 extern
239/*
240 test if both volumes have the same type
241*/
242/*----------------------------------------------------------------------------*/
243(
244 Volume *volume1,
245 Volume *volume2
246);
247
248
249/*----------------------------------------------------------------------------*/
250 extern
252/*
253 test if both volumes have the same border width
254*/
255/*----------------------------------------------------------------------------*/
256(
257 Volume *volume1,
258 Volume *volume2
259);
260
261
262/*----------------------------------------------------------------------------*/
263 extern
265/*
266 test if the slice index is in the volume (# between -bW and z+bW-1)
267*/
268/*----------------------------------------------------------------------------*/
269(
270 Volume *volume,
271 int slice
272);
273
274
275/*----------------------------------------------------------------------------*/
276 extern
278/*
279 test if the image contains the slice (# between 0 and size.z-1)
280*/
281/*----------------------------------------------------------------------------*/
282(
283 Volume *volume,
284 int slice
285);
286
287
288/*----------------------------------------------------------------------------*/
289 extern
291/*
292 verify that the volume contains correct information
293*/
294/*----------------------------------------------------------------------------*/
295(
296 Volume *volume
297);
298
299
300/*----------------------------------------------------------------------------*/
301extern
303(
304 Roi *roi,
305 Volume *volume
306);
307/*----------------------------------------------------------------------------*/
308
309
310/*----------------------------------------------------------------------------*/
311extern
312int testLevelInType ( double level, int type );
313
314/*----------------------------------------------------------------------------*/
315
316
317/*=====================================================*
318 | |
319 | getting functions : access to the volume structure |
320 | |
321 *=====================================================*/
322
323/*----------------------------------------------------------------------------*/
324 extern
326
327/*----------------------------------------------------------------------------*/
328(
329 Volume *volume,
330 int *sizeX,
331 int *sizeY
332);
333#define getSize3 getSize
334/*----------------------------------------------------------------------------*/
335 extern
337
338/*----------------------------------------------------------------------------*/
339(
340 Volume *volume,
341 int *sizeX,
342 int *sizeY,
343 int *sizeZ
344);
345/*----------------------------------------------------------------------------*/
346 extern
348
349/*----------------------------------------------------------------------------*/
350(
351 Volume *volume,
352 int *sizeX,
353 int *sizeY,
354 int *sizeZ,
355 int *sizeT
356);
357
358
359
360/*----------------------------------------------------------------------------*/
361
363
364/*----------------------------------------------------------------------------*/
365(
366 Volume *volume
367);
368/*----------------------------------------------------------------------------*/
369
371
372/*----------------------------------------------------------------------------*/
373(
374 Volume *volume
375);
376/*----------------------------------------------------------------------------*/
377
379
380/*----------------------------------------------------------------------------*/
381(
382 Volume *volume
383);
384/*----------------------------------------------------------------------------*/
385
387
388/*----------------------------------------------------------------------------*/
389(
390 Volume *volume
391);
392
393
394
395/*----------------------------------------------------------------------------*/
396 extern
398
399/*----------------------------------------------------------------------------*/
400(
401 Volume *volume,
402 float *voxelSizeX,
403 float *voxelSizeY
404);
405#define getVoxelSize3 getVoxelSize
406/*----------------------------------------------------------------------------*/
407 extern
409
410/*----------------------------------------------------------------------------*/
411(
412 Volume *volume,
413 float *voxelSizeX,
414 float *voxelSizeY,
415 float *voxelSizeZ
416);
417/*----------------------------------------------------------------------------*/
418 extern
420
421/*----------------------------------------------------------------------------*/
422(
423 Volume *volume,
424 float *voxelSizeX,
425 float *voxelSizeY,
426 float *voxelSizeZ,
427 float *voxelSizeT
428);
429
430
431/*----------------------------------------------------------------------------*/
432 extern
434
435/*----------------------------------------------------------------------------*/
436(
437 Volume *volume
438);
439
440
441/*----------------------------------------------------------------------------*/
442 extern
444
445/*----------------------------------------------------------------------------*/
446(
447 Volume *volume
448);
449/*----------------------------------------------------------------------------*/
450extern
452
453/*----------------------------------------------------------------------------*/
454(
455 int type
456 );
457
458
459/* for use in util.h */
460/*----------------------------------------------------------------------------*/
461extern
463/*----------------------------------------------------------------------------*/
464(
465 int state
466);
467
468
469/*----------------------------------------------------------------------------*/
470 extern
472
473/*----------------------------------------------------------------------------*/
474(
475 Volume *volume,
476 double *minVal,
477 double *maxVal
478 );
479
480
481
482
483/*============================================================*
484 | |
485 | setting functions : change values in the volume structure |
486 | |
487 *===========================================================*/
488
489
490
491/*----------------------------------------------------------------------------*/
492 extern
494/*----------------------------------------------------------------------------*/
495(
496 Volume *volume,
497 int nx,
498 int ny
499);
500#define setSize3 setSize
501/*----------------------------------------------------------------------------*/
502 extern
504/*----------------------------------------------------------------------------*/
505(
506 Volume *volume,
507 int nx,
508 int ny,
509 int nz
510);
511/*----------------------------------------------------------------------------*/
512 extern
514
515/*----------------------------------------------------------------------------*/
516(
517 Volume *volume,
518 int nx,
519 int ny,
520 int nz,
521 int nt
522);
523
524
525
526/*----------------------------------------------------------------------------*/
527 extern
529
530/*----------------------------------------------------------------------------*/
531(
532 Volume *volume,
533 int nx
534);
535/*----------------------------------------------------------------------------*/
536 extern
538
539/*----------------------------------------------------------------------------*/
540(
541 Volume *volume,
542 int ny
543);
544/*----------------------------------------------------------------------------*/
545 extern
547
548/*----------------------------------------------------------------------------*/
549(
550 Volume *volume,
551 int nz
552);
553/*----------------------------------------------------------------------------*/
554 extern
556
557/*----------------------------------------------------------------------------*/
558(
559 Volume *volume,
560 int nt
561);
562
563
564
565/*----------------------------------------------------------------------------*/
566 extern
568/*----------------------------------------------------------------------------*/
569(
570 Volume *volume,
571 float dx,
572 float dy
573);
574#define setVoxelSize3 setVoxelSize
575/*----------------------------------------------------------------------------*/
576 extern
578/*----------------------------------------------------------------------------*/
579(
580 Volume *volume,
581 float dx,
582 float dy,
583 float dz
584);
585/*----------------------------------------------------------------------------*/
586 extern
588
589/*----------------------------------------------------------------------------*/
590(
591 Volume *volume,
592 float dx,
593 float dy,
594 float dz,
595 float dt
596);
597
598
599/*----------------------------------------------------------------------------*/
600 extern
602
603/*----------------------------------------------------------------------------*/
604(
605 Volume *volume,
606 int type
607);
608
609
610/*----------------------------------------------------------------------------*/
611 extern
613
614/*----------------------------------------------------------------------------*/
615(
616 Volume *volume,
617 int borderWidth
618);
619
620
621/*----------------------------------------------------------------------------*/
622 extern
624
625/*----------------------------------------------------------------------------*/
626(
627 Volume *volume,
628 double level
629);
630
631
632/*----------------------------------------------------------------------------*/
633 extern
635
636/*----------------------------------------------------------------------------*/
637(
638 Volume *volume,
639 double level
640);
641
642
643/*----------------------------------------------------------------------------*/
644 extern
646
647/*----------------------------------------------------------------------------*/
648(
649 Volume *volume,
650 double level
651);
652
653
654
655
656
657/*====================*
658 | |
659 | offset functions |
660 | |
661 *====================*/
662
663
664/*----------------------------------------------------------------------------*/
665 extern
667
668/*----------------------------------------------------------------------------*/
669(
670 Volume *volume
671);
672/* the following function should disappear in the future: */
673/*----------------------------------------------------------------------------*/
674 extern
676
677/*----------------------------------------------------------------------------*/
678(
679 Volume *volume
680);
681
682
683/*----------------------------------------------------------------------------*/
684 extern
686
687/*----------------------------------------------------------------------------*/
688(
689 Volume *volume
690);
691
692
693/*----------------------------------------------------------------------------*/
694 extern
696
697/*----------------------------------------------------------------------------*/
698(
699 Volume *volume
700);
701
702
703/*----------------------------------------------------------------------------*/
704 extern
706
707/*----------------------------------------------------------------------------*/
708(
709 Volume *volume
710);
711
712
713/*----------------------------------------------------------------------------*/
714 extern
716
717/*----------------------------------------------------------------------------*/
718(
719 Volume *volume
720);
721
722
723/*----------------------------------------------------------------------------*/
724 extern
726
727/*----------------------------------------------------------------------------*/
728(
729 Volume *volume
730);
731
732
733/*----------------------------------------------------------------------------*/
734 extern
736
737/*----------------------------------------------------------------------------*/
738(
739 Volume *volume
740);
741
742
743/*----------------------------------------------------------------------------*/
744 extern
746
747/*----------------------------------------------------------------------------*/
748(
749 Volume *volume
750);
751
752
753/*----------------------------------------------------------------------------*/
754
755 long int *offsetBox
756
757/*----------------------------------------------------------------------------*/
758(
759 Volume *volume,
760 int connexity
761);
762
763
764
765
766
767
768
769/*============================*
770 | |
771 | data accessing functions |
772 | |
773 *============================*/
774
775/*
776 Rq : we can not prevent with 'lint' the six occurances of the message
777 'pointer cast may result in improper alignment' caused by these functions
778*/
779
780
781/*----------------------------------------------------------------------------*/
782 extern
784
785/*----------------------------------------------------------------------------*/
786(
787 Volume *volume
788);
789
790
791/*----------------------------------------------------------------------------*/
792 extern
794
795/*----------------------------------------------------------------------------*/
796(
797 Volume *volume
798);
799
800
801/*----------------------------------------------------------------------------*/
802 extern
804
805/*----------------------------------------------------------------------------*/
806(
807 Volume *volume
808);
809
810
811/*----------------------------------------------------------------------------*/
812 extern
814
815/*----------------------------------------------------------------------------*/
816(
817 Volume *volume
818);
819
820
821/*----------------------------------------------------------------------------*/
822 extern
824
825/*----------------------------------------------------------------------------*/
826(
827 Volume *volume
828);
829
830
831/*----------------------------------------------------------------------------*/
832 extern
834
835/*----------------------------------------------------------------------------*/
836(
837 Volume *volume
838);
839
840
841/*----------------------------------------------------------------------------*/
842 extern
844
845/*----------------------------------------------------------------------------*/
846(
847 Volume *volume
848);
849
850
851/*----------------------------------------------------------------------------*/
852 extern
854
855/*----------------------------------------------------------------------------*/
856(
857 Volume *volume
858);
859
860
861/*----------------------------------------------------------------------------*/
862 extern
864
865/*----------------------------------------------------------------------------*/
866(
867 Volume *volume
868);
869
870
871/*----------------------------------------------------------------------------*/
872/* extern
873 U8BIT_t ***tab_U8BIT
874*/
875/*----------------------------------------------------------------------------*/
876/*(
877 Volume *volume
878);*/
879
880
881/*----------------------------------------------------------------------------*/
882/* extern
883 S8BIT_t ***tab_S8BIT
884*/
885/*----------------------------------------------------------------------------*/
886/*(
887 Volume *volume
888);*/
889
890
891/*----------------------------------------------------------------------------*/
892/* extern
893 U16BIT_t ***tab_U16BIT
894*/
895/*----------------------------------------------------------------------------*/
896/*(
897 Volume *volume
898);*/
899
900
901/*----------------------------------------------------------------------------*/
902/* extern
903 S16BIT_t ***tab_S16BIT
904*/
905/*----------------------------------------------------------------------------*/
906/*(
907 Volume *volume
908);*/
909
910
911/*----------------------------------------------------------------------------*/
912/* extern
913 U32BIT_t ***tab_U32BIT
914*/
915/*----------------------------------------------------------------------------*/
916/*(
917 Volume *volume
918);*/
919
920
921/*----------------------------------------------------------------------------*/
922/* extern
923 S32BIT_t ***tab_S32BIT
924*/
925/*----------------------------------------------------------------------------*/
926/*(
927 Volume *volume
928);*/
929
930
931/*----------------------------------------------------------------------------*/
932/* extern
933 FLOAT_t ***tab_FLOAT
934*/
935/*----------------------------------------------------------------------------*/
936/*(
937 Volume *volume
938);*/
939
940
941/*----------------------------------------------------------------------------*/
942/* extern
943 DOUBLE_t ***tab_DOUBLE
944*/
945/*----------------------------------------------------------------------------*/
946/*(
947 Volume *volume
948);*/
949
950
951
952
953
954
955/*==========================*
956 | |
957 | input-output functions |
958 | |
959 *==========================*/
960
961
962
963/* the following function existed earlier with other parameters
964 pleas change them ! The dimension info is now returned as
965 a volume structure
966 The old function is renamed to readVolumeDim_OLD but should
967 disappear in the future
968*/
969/*----------------------------------------------------------------------------*/
970
972
973/*----------------------------------------------------------------------------*/
974(
975 const char *filename,
976 Roi *roi
977);
978
979/*----------------------------------------------------------------------------*/
980 extern
982
983/*----------------------------------------------------------------------------*/
984(
985 const char *filename,
986 int *nx,
987 int *ny,
988 int *nz,
989 int *type,
990 float *dx,
991 float *dy,
992 float *dz
993);
994
995
996/*----------------------------------------------------------------------------*/
997 extern
999
1000/*----------------------------------------------------------------------------*/
1001(
1002 const char *filename,
1003 int borderWidth
1004);
1005
1006
1007/*----------------------------------------------------------------------------*/
1008extern
1009void writeVolumeDim /*NEW*/
1010
1011/*----------------------------------------------------------------------------*/
1012(
1013 Volume *volume,
1014 const char *filename
1015 );
1016
1017/*----------------------------------------------------------------------------*/
1018 extern
1020
1021/*----------------------------------------------------------------------------*/
1022(
1023 Volume *volume,
1024 const char *filename
1025);
1026
1027
1028/*----------------------------------------------------------------------------*/
1029
1031
1032/*----------------------------------------------------------------------------*/
1033(
1034 Volume *volume,
1035 int firstSlice, /* slices go from 0 to n-1 */
1036 int nSlices, /* the number of consecutive slices */
1037 const char *filename
1038 );
1039
1040/*----------------------------------------------------------------------------*/
1041 extern
1043
1044/*----------------------------------------------------------------------------*/
1045(
1046 Volume *volume,
1047 int slice, /* slices go from 0 to nz-1 */
1048 const char *filename
1049);
1050
1051
1052
1053
1054
1055/*==========================*
1056 | |
1057 | volume creators |
1058 | |
1059 *==========================*/
1060
1061
1062
1063
1064#define declareVolumeStructure3 declareVolumeStructure
1065/*----------------------------------------------------------------------------*/
1066 extern
1068/*----------------------------------------------------------------------------*/
1069(
1070 int xSize,
1071 int ySize,
1072 int zSize,
1073 float xVoxelSize,
1074 float yVoxelSize,
1075 float zVoxelSize,
1076 int type,
1077 const char *name,
1078 int borderWidth
1079);
1080/*----------------------------------------------------------------------------*/
1081 extern
1083
1084/*----------------------------------------------------------------------------*/
1085(
1086 int xSize,
1087 int ySize,
1088 int zSize,
1089 int tSize,
1090 float xVoxelSize,
1091 float yVoxelSize,
1092 float zVoxelSize,
1093 float tVoxelSize,
1094 int type,
1095 const char *name,
1096 int borderWidth
1097);
1098
1099
1100/*----------------------------------------------------------------------------*/
1101 extern
1103
1104/*----------------------------------------------------------------------------*/ (
1105 Volume *volume,
1106 const char *name
1107);
1108
1109
1110/*----------------------------------------------------------------------------*/
1111 extern
1113
1114/*----------------------------------------------------------------------------*/
1115(
1116 Volume *volume
1117);
1118
1119
1120/*----------------------------------------------------------------------------*/
1121 extern
1122 Volume *createVolume /* prefer new version */
1123
1124/*----------------------------------------------------------------------------*/
1125(
1126 int xSize,
1127 int ySize,
1128 int zSize,
1129 float xVoxelSize,
1130 float yVoxelSize,
1131 float zVoxelSize,
1132 int type,
1133 const char *name,
1134 int borderWidth
1135);
1136/*----------------------------------------------------------------------------*/
1137 extern
1139
1140/*----------------------------------------------------------------------------*/
1141(
1142 int xSize,
1143 int ySize,
1144 int zSize,
1145 int tSize,
1146 float xVoxelSize,
1147 float yVoxelSize,
1148 float zVoxelSize,
1149 float tVoxelSize,
1150 int type,
1151 const char *name,
1152 int borderWidth
1153);
1154
1155
1156/*----------------------------------------------------------------------------*/
1157 extern
1159
1160/*----------------------------------------------------------------------------*/
1161(
1162 Volume *volumeR,
1163 Volume *volumeW
1164);
1165
1166
1167/*----------------------------------------------------------------------------*/
1168 extern
1170
1171/*----------------------------------------------------------------------------*/
1172(
1173 const char *filename,
1174 Volume *volume
1175);
1176
1177
1178/*----------------------------------------------------------------------------*/
1179 extern
1181
1182/*----------------------------------------------------------------------------*/
1183(
1184 Volume *volume,
1185 const char *name
1186);
1187
1188
1189
1190
1191/*----------------------------------------------------------------------------*/
1192 extern
1194
1195/*----------------------------------------------------------------------------*/
1196(
1197 Volume *volumeSource,
1198 int sliceSource,
1199 Volume *volumeDestination,
1200 int sliceDestination
1201);
1202
1203
1204
1205/*----------------------------------------------------------------------------*/
1206
1208
1209/*----------------------------------------------------------------------------*/
1210(
1211 Volume *volume
1212);
1213
1214
1215/*----------------------------------------------------------------------------*/
1216 extern
1218
1219/*----------------------------------------------------------------------------*/
1220(
1221 Volume *volume,
1222 int slice
1223);
1224
1225/*----------------------------------------------------------------------------*/
1226 extern
1228
1229/*----------------------------------------------------------------------------*/
1230(
1231 Volume *volume,
1232 Roi *roi
1233 );
1234
1235/*----------------------------------------------------------------------------*/
1236
1238
1239/*----------------------------------------------------------------------------*/
1240(
1241 Volume *volume,
1242 int first,
1243 int step,
1244 int number,
1245 int width
1246);
1247
1248
1249/*----------------------------------------------------------------------------*/
1250 extern
1252
1253/*----------------------------------------------------------------------------*/
1254(
1255 Volume *volume
1256);
1257
1258
1259/*----------------------------------------------------------------------------*/
1260 extern
1262
1263/*----------------------------------------------------------------------------*/
1264(
1265 Volume *volume
1266);
1267
1268
1269/*----------------------------------------------------------------------------*/
1270 extern
1272/*----------------------------------------------------------------------------*/
1273(
1274 Volume *volume
1275);
1276
1277
1278
1279/*----------------------------------------------------------------------------*/
1280 extern
1282/*----------------------------------------------------------------------------*/
1283(
1284 Volume *volume
1285);
1286
1287
1288/*----------------------------------------------------------------------------*/
1289 extern
1291/*----------------------------------------------------------------------------*/
1292(
1293 Volume *volume
1294);
1295
1296
1297/*----------------------------------------------------------------------------*/
1298 extern
1300/*----------------------------------------------------------------------------*/
1301(
1302 Volume *volume
1303);
1304
1305
1306#ifdef __cplusplus
1307}
1308#endif
1309
1310#endif /* TIVOLI_VOLUME_H */
char ANY_t
int testEqualType(Volume *volume1, Volume *volume2)
unsigned char U8BIT_t
long offsetFirstPoint(Volume *volume)
double F64BIT_t
FLOAT_t * data_VFLOAT(Volume *volume)
void printfError(char *s)
Volume * declareVolumeStructure(int xSize, int ySize, int zSize, float xVoxelSize, float yVoxelSize, float zVoxelSize, int type, const char *name, int borderWidth)
DOUBLE_t * data_VDOUBLE(Volume *volume)
Volume * axial2sagittal(Volume *volume)
S8BIT_t * data_S8BIT(Volume *volume)
void setSizex(Volume *volume, int nx)
U8BIT_t * data_U8BIT(Volume *volume)
int testFilled(Volume *volume)
S32BIT_t * data_S32BIT(Volume *volume)
char * stateName(int state)
short S16BIT_t
long S32BIT_t
Volume * declareVolumeStructure4(int xSize, int ySize, int zSize, int tSize, float xVoxelSize, float yVoxelSize, float zVoxelSize, float tVoxelSize, int type, const char *name, int borderWidth)
float FLOAT_t
int testTypeN(Volume *volume, int n,...)
long offsetVolume(Volume *volume)
void addBorder(Volume *volume)
void setSizez(Volume *volume, int nz)
int verifyRoi(Roi *roi, Volume *volume)
long offset_forANYtype_BetweenPoint(Volume *volume)
void setSizet(Volume *volume, int nt)
void copySlice(Volume *volumeSource, int sliceSource, Volume *volumeDestination, int sliceDestination)
void getVoxelSize(Volume *volume, float *voxelSizeX, float *voxelSizeY, float *voxelSizeZ)
int testEqualSize(Volume *volume1, Volume *volume2)
int verifyAll(Volume *volume)
void setSize(Volume *volume, int nx, int ny, int nz)
int testLevelInType(double level, int type)
Volume * duplicateVolumeStructure(Volume *volume, const char *name)
void getSize4(Volume *volume, int *sizeX, int *sizeY, int *sizeZ, int *sizeT)
int borderWidthOf(Volume *volume)
Volume * extractRoi(Volume *volume, Roi *roi)
void writeVolumeDim(Volume *volume, const char *filename)
Volume * createVolume4(int xSize, int ySize, int zSize, int tSize, float xVoxelSize, float yVoxelSize, float zVoxelSize, float tVoxelSize, int type, const char *name, int borderWidth)
void freeVolumeData(Volume *volume)
void freeVolume(Volume *volume)
void getSize2(Volume *volume, int *sizeX, int *sizeY)
void setVoxelSize(Volume *volume, float dx, float dy, float dz)
int testSlice(Volume *volume, int slice)
void setSizey(Volume *volume, int ny)
Volume * sagittal2axial(Volume *volume)
void getVoxelSize2(Volume *volume, float *voxelSizeX, float *voxelSizeY)
void transferVolumeData(Volume *volumeR, Volume *volumeW)
unsigned short U16BIT_t
void setVolumeLevel(Volume *volume, double level)
void setVoxelSize4(Volume *volume, float dx, float dy, float dz, float dt)
void setType(Volume *volume, int type)
void getVoxelSize4(Volume *volume, float *voxelSizeX, float *voxelSizeY, float *voxelSizeZ, float *voxelSizeT)
void printfInfo(char *s)
void allocateVolumeData(Volume *volume)
float F32BIT_t
int testExistN(int n,...)
Volume * coronal2axial(Volume *volume)
int testType(Volume *volume, int type)
int sizezOf(Volume *volume)
char * typeName(int type)
void setSize4(Volume *volume, int nx, int ny, int nz, int nt)
long offsetPointBetweenLine(Volume *volume)
void setBorderLevel(Volume *volume, double level)
void writeVolume(Volume *volume, const char *filename)
void writeVolumeSlices(Volume *volume, int firstSlice, int nSlices, const char *filename)
void setSize2(Volume *volume, int nx, int ny)
U32BIT_t * data_U32BIT(Volume *volume)
int testImageSlice(Volume *volume, int slice)
long offsetSlice(Volume *volume)
S16BIT_t * data_S16BIT(Volume *volume)
int sizeyOf(Volume *volume)
Volume * extractSlice(Volume *volume, int slice)
int testEqual2DSize(Volume *volume1, Volume *volume2)
Volume * copyVolume(Volume *volume, const char *name)
Volume * readVolumeDim(const char *filename, Roi *roi)
void writeVolumeSlice(Volume *volume, int slice, const char *filename)
long int * offsetBox(Volume *volume, int connexity)
int sizeofType(Volume *volume)
void getSize(Volume *volume, int *sizeX, int *sizeY, int *sizeZ)
unsigned long U32BIT_t
U16BIT_t * data_U16BIT(Volume *volume)
void getMinMax(Volume *volume, double *minVal, double *maxVal)
int readVolumeDim_OLD(const char *filename, int *nx, int *ny, int *nz, int *type, float *dx, float *dy, float *dz)
Volume * axial2coronal(Volume *volume)
Volume * readVolume(const char *filename, int borderWidth)
int sizexOf(Volume *volume)
double DOUBLE_t
long offsetImage(Volume *volume)
void setImageLevel(Volume *volume, double level)
Volume * createVolume(int xSize, int ySize, int zSize, float xVoxelSize, float yVoxelSize, float zVoxelSize, int type, const char *name, int borderWidth)
void setVoxelSize2(Volume *volume, float dx, float dy)
Volume * vol3DtoVol2D(Volume *volume, int first, int step, int number, int width)
char S8BIT_t
int testExist(Volume *volume)
void setBorderWidth(Volume *volume, int borderWidth)
long offsetLineBetweenSlice(Volume *volume)
void appendVolume(const char *filename, Volume *volume)
int testEqualBorderWidth(Volume *volume1, Volume *volume2)
void printfWarning(char *s)
int sizetOf(Volume *volume)
int typeOf(Volume *volume)
long offsetLine(Volume *volume)
ANY_t * data_ANY(Volume *volume)
int state