VIP: Volume Image Processing


volume.h
Go to the documentation of this file.
1/*****************************************************************************
2 * PROJECT : V.I.P. Library
3 * MODULE NAME : vip/volume.h * TYPE : Header
4 * AUTHOR : MANGIN J.F. * CREATION : 16/01/1996
5 * VERSION : 0.1 * REVISION :
6 * LANGUAGE : C * EXAMPLE :
7 * DEVICE : Sun SPARC Station 5
8 *****************************************************************************
9 *
10 * DESCRIPTION : Entrees sorties tivoli + fonction d'acces aux champs tivoli
11 * Creation de 'vip/volume.h' fortement inspire des
12 * entrees/sorties de la librairie Tivoli du département image
13 * de Telecom Paris de maniere a pouvoir utiliser le meme
14 * format d'images en memoire. Le but escompte est la
15 * possibilite de link simultane avec Tivoli (ENST) et
16 * Vip (Volumic Image Processing SHFJ).
17 * Les principales differences resident dans la gestion du
18 * format du SHFJ dedie aux images fonctionnelles, la gestion
19 * des series dynamiques (images 4D) et la mise en oeuvre de
20 * procedures generiques (plutot que des switch comme dans
21 * Tivoli) dans le cas ou la gestion du type des images est
22 * necessaire. Cette derniere difference se manifeste par un
23 * split du fichier volume.c initial en un fichier de
24 * procedure "type independant" et un fichier generique
25 * volume.gen .
26 *
27 * En outre, de maniere a reduire les probabilites de conflits
28 * entre les deux librairies, les diverses fonctions destinees
29 * a la gestion de cette structure de donnee ont ete dotees du
30 * prefixe "Vip" (ainsi que generalement d'une majuscule
31 * supplementaire), les alias des divers types de donnees ont
32 * ete dotes du prefixe "vip/"(le suffixe _t a ete supprime).
33 *
34 * jfmangin@cea.fr
35 *
36 *****************************************************************************
37 *
38 * USED MODULES :
39 *
40 *****************************************************************************
41 * REVISIONS : DATE | AUTHOR | DESCRIPTION
42 *--------------------|--------------|----------------------------------------
43 * / / | |
44 *****************************************************************************/
45
46
47#ifndef VIP_VOLUME_H
48#define VIP_VOLUME_H
49
50#ifdef __cplusplus
51 extern "C" {
52#endif
53
54extern int VIP_EXIT_IN_PRINTFEXIT;
55
66
68#include <vip/util.h>
69#include <vip/vida.h>
70#include <vip/volume/volume_gen.h>
71#include <vip/volume/subvolume_gen.h>
72
73
74/* Format d'images geres*/
75
76#define ANY_FORMAT 99
77#define VIDA 100 /*analyse format with huge modifications*/
78#define TIVOLI 101
79#define SPM 102 /*analyse format with some modifications*/
80#define MINC 103 /*BIC Montreal Neurological Institute*/
81
82/* used in numerous procedures */
83#define SAME_VOLUME 0
84#define NEW_VOLUME 1
85
86 /* flag for (Volume*)->state */
87
88#define STATE_DECLARED 1 /* structure declared */
89#define STATE_ALLOCATED 2 /* memory allocated for data */
90#define STATE_FILLED 3 /* significant data */
91#define STATE_FREED 4 /* structure freed */
92
93
94/* macro for volume declaration: */
95
96#define VIP_DEC_VOLUME(aVolumePtr) Volume *aVolumePtr = NULL
97
98/* this macro should be used to assure that Volume pointers
99are set to NULL when they are not allocated*/
100
101
102extern int VipMemoryMapping; /*this global flag decide if the VipReadVolume
103Procedures are doing Memory mapping*/
104
105
106 /* Seuls les donnees temporaires chargees en memoires sont mises */
107 /* en memory mapping */
108 /* L'argument qui verouille cet aspect est essentiellement le */
109 /* Mecanisme avec Border Width. */
110 /* Il faudrai cependant etudier un mapping persistent pour les */
111 /* avec Border Width null et Format FX_SHORT_XX (vida) ou TIVOLI */
112
113typedef struct swapfileNode {
115 const char *swapfile;
117
118
119/*----------------------------------------------------------------------------*/
121 /*----------------------------------------------------------------------------*/
122
123
124/*==============================================*
125 | |
126 |testing functions (return 0 (PB) on failure) |
127 | |
128 *==============================================*/
129
130
131
132
133/*----------------------------------------------------------------------------*/
134 extern
136/*
137 test if volume contains significant information (caracteristics and/or
138 data) ; this function is called by the following ones
139*/
140/*----------------------------------------------------------------------------*/
141(
142 Volume *volume
143);
144
145
146/*----------------------------------------------------------------------------*/
147 extern
149/*
150 idem than VipTestExist for a list of volumes
151*/
152/*----------------------------------------------------------------------------*/
153(
154 int n, ...
155);
156
157
158/*----------------------------------------------------------------------------*/
159 extern
161/*
162 test if the volume type is the one specified
163*/
164/*----------------------------------------------------------------------------*/
165(
166 Volume *volume,
167 int type
168);
169
170
171/*----------------------------------------------------------------------------*/
172 extern
174/*
175 test if the volume type is one of the list of n
176*/
177/*----------------------------------------------------------------------------*/
178(
179 Volume *volume,
180 int n, ...
181);
182
183
184
185
186/*----------------------------------------------------------------------------*/
187 extern
189/*
190 test if both volumes have the same dimensions (size.x .y .z and .t)
191*/
192/*----------------------------------------------------------------------------*/
193(
194 Volume *volume1,
195 Volume *volume2
196);
197
198
199/*----------------------------------------------------------------------------*/
200 extern
202/*
203 test if both volumes have the same dimensions (size.x .y and .z)
204*/
205/*----------------------------------------------------------------------------*/
206(
207 Volume *volume1,
208 Volume *volume2
209);
210
211
212/*----------------------------------------------------------------------------*/
213 extern
215/*
216 test if both volumes have the same dimensions (size.x and .y)
217*/
218/*----------------------------------------------------------------------------*/
219(
220 Volume *volume1,
221 Volume *volume2
222);
223
224
225/*----------------------------------------------------------------------------*/
226 extern
228/*
229 test if both volumes have the same type
230*/
231/*----------------------------------------------------------------------------*/
232(
233 Volume *volume1,
234 Volume *volume2
235);
236
237
238/*----------------------------------------------------------------------------*/
239 extern
241/*
242 test if both volumes have the same border width
243*/
244/*----------------------------------------------------------------------------*/
245(
246 Volume *volume1,
247 Volume *volume2
248);
249
250
251/*----------------------------------------------------------------------------*/
252extern char *VipTypeName
253/* provide string with type name*/
254/*----------------------------------------------------------------------------*/
255(
256 int type
257);
258
259
260
261/*----------------------------------------------------------------------------*/
262 extern
264/*
265 verify that the volume contains correct information
266*/
267/*----------------------------------------------------------------------------*/
268(
269 Volume *volume
270);
271
272/*----------------------------------------------------------------------------*/
273 extern
275/* check if <volume> is in state <state>*/
276/*----------------------------------------------------------------------------*/
277(
278 Volume *volume,
279 int state
280);
281
282/*----------------------------------------------------------------------------*/
284/*----------------------------------------------------------------------------*/
285(
286 Volume *volume,
287 int n, ...
288);
289
290
291/*----------------------------------------------------------------------------*/
293/* check is volume is a unsigned 8bit 2D image */
294/*----------------------------------------------------------------------------*/
295(
296 Volume *volume
297);
298
299
300/*=====================*
301 | |
302 | getting functions |
303 | |
304 *=====================*/
305
306/*Macros to access volume fields*/
307
308#define mVipVolName(vol) ((vol)->name)
309#define mVipVolSizeX(vol) ((vol)->size.x)
310#define mVipVolSizeY(vol) ((vol)->size.y)
311#define mVipVolSizeZ(vol) ((vol)->size.z)
312#define mVipVolSizeT(vol) ((vol)->size.t)
313#define mVipVolType(vol) ((vol)->type)
314#define mVipVolVoxSizeX(vol) ((vol)->voxelSize.x)
315#define mVipVolVoxSizeY(vol) ((vol)->voxelSize.y)
316#define mVipVolVoxSizeZ(vol) ((vol)->voxelSize.z)
317#define mVipVolVoxSizeT(vol) ((vol)->voxelSize.t)
318#define mVipVolBorderWidth(vol) ((vol)->borderWidth)
319#define mVipVolShfjUnite(vol) ((vol)->shfj->unite)
320#define mVipVolShfjVmdType(vol) ((vol)->shfj->VmdType)
321#define mVipVolShfjScale(vol) ((vol)->shfj->scale)
322#define mVipVolShfjOffset(vol) ((vol)->shfj->offset)
323
324/*----------------------------------------------------------------------------*/
325
327
328/*----------------------------------------------------------------------------*/
329(
330 Volume *volume
331);
332
333
334/*----------------------------------------------------------------------------*/
335 extern
337
338/*----------------------------------------------------------------------------*/
339(
340 Volume *volume,
341 int *sizeX,
342 int *sizeY,
343 int *sizeZ
344);
345
346/*----------------------------------------------------------------------------*/
347 extern
349
350/*----------------------------------------------------------------------------*/
351(
352 Volume *volume,
353 int *sizeX,
354 int *sizeY,
355 int *sizeZ,
356 int *sizeT
357);
358
359/*----------------------------------------------------------------------------*/
360 extern
362
363/*----------------------------------------------------------------------------*/
364(
365 Volume * volume
366);
367
368/*----------------------------------------------------------------------------*/
369 extern
371
372/*----------------------------------------------------------------------------*/
373(
374 Volume * volume
375);
376
377/*----------------------------------------------------------------------------*/
378 extern
380
381/*----------------------------------------------------------------------------*/
382(
383 Volume *volume
384);
385
386
387/*----------------------------------------------------------------------------*/
388 extern
390
391/*----------------------------------------------------------------------------*/
392(
393 Volume *volume
394);
395
396
397/*----------------------------------------------------------------------------*/
398 extern
400
401/*----------------------------------------------------------------------------*/
402(
403 Volume *volume
404);
405
406/*----------------------------------------------------------------------------*/
407 extern
409
410/*----------------------------------------------------------------------------*/
411(
412 Volume *volume
413);
414
415
416/*----------------------------------------------------------------------------*/
417 extern
419
420/*----------------------------------------------------------------------------*/
421(
422 Volume *volume
423);
424
425/*----------------------------------------------------------------------------*/
426 extern
428
429/*----------------------------------------------------------------------------*/
430(
431 Volume *volume,
432 float *voxelSizeX,
433 float *voxelSizeY,
434 float *voxelSizeZ
435);
436
437/*----------------------------------------------------------------------------*/
438 extern
440
441/*----------------------------------------------------------------------------*/
442(
443 Volume *volume,
444 float *voxelSizeX,
445 float *voxelSizeY,
446 float *voxelSizeZ,
447 float *voxelSizeT
448);
449
450
451/*----------------------------------------------------------------------------*/
452 extern
454
455/*----------------------------------------------------------------------------*/
456(
457 Volume *volume
458);
459
460
461
462
463
464/*=====================*
465 | |
466 | setting functions |
467 | |
468 *=====================*/
469
470
471 extern
473
474/*----------------------------------------------------------------------------*/
475(
476 Volume *volume,
477 int unite
478);
479
480/*----------------------------------------------------------------------------*/
481
482 extern
484
485/*----------------------------------------------------------------------------*/
486(
487 Volume *volume,
488 int vmdtype
489);
490
491/*----------------------------------------------------------------------------*/
492
493 extern
495
496/*----------------------------------------------------------------------------*/
497(
498 Volume *volume,
499 float scale
500);
501
502/*----------------------------------------------------------------------------*/
503
504 extern
506
507/*----------------------------------------------------------------------------*/
508(
509 Volume *volume,
510 float offset
511);
512
513/*----------------------------------------------------------------------------*/
514
515 extern
517
518/*----------------------------------------------------------------------------*/
519(
520 Volume *volume
521);
522
523/*----------------------------------------------------------------------------*/
524
525 extern
527
528/*----------------------------------------------------------------------------*/
529(
530 Volume *volume
531);
532
533/*----------------------------------------------------------------------------*/
534
535
536 extern
538
539/*----------------------------------------------------------------------------*/
540(
541 Volume *volume
542);
543
544/*----------------------------------------------------------------------------*/
545
546 extern
548
549/*----------------------------------------------------------------------------*/
550(
551 Volume *volume
552);
553
554/*----------------------------------------------------------------------------*/
555
556
557 extern
559
560/*----------------------------------------------------------------------------*/
561(
562 Volume *volume, int frameNumber
563);
564
565/*----------------------------------------------------------------------------*/
566
567 extern
569
570/*----------------------------------------------------------------------------*/
571(
572 Volume *volume, int frameNumber
573);
574
575/*----------------------------------------------------------------------------*/
576
577
578 extern
580
581/*----------------------------------------------------------------------------*/
582(
583 Volume *volume,
584 int state
585);
586
587/*----------------------------------------------------------------------------*/
588 extern
590
591/*----------------------------------------------------------------------------*/
592(
593 Volume *volume,
594 char *name
595);
596
597/*----------------------------------------------------------------------------*/
598 extern
600
601/*----------------------------------------------------------------------------*/
602(
603 Volume *volume,
604 int nx,
605 int ny,
606 int nz
607);
608
609/*----------------------------------------------------------------------------*/
610 extern
612
613/*----------------------------------------------------------------------------*/
614(
615 Volume *volume,
616 int nx,
617 int ny,
618 int nz,
619 int nt
620);
621
622/*----------------------------------------------------------------------------*/
623 extern
625
626/*----------------------------------------------------------------------------*/
627(
628 Volume *volume,
629 int nx
630);
631
632
633/*----------------------------------------------------------------------------*/
634 extern
636
637/*----------------------------------------------------------------------------*/
638(
639 Volume *volume,
640 int ny
641);
642
643
644/*----------------------------------------------------------------------------*/
645 extern
647
648/*----------------------------------------------------------------------------*/
649(
650 Volume *volume,
651 int nz
652);
653
654/*----------------------------------------------------------------------------*/
655 extern
657
658/*----------------------------------------------------------------------------*/
659(
660 Volume *volume,
661 int nt
662);
663
664
665/*----------------------------------------------------------------------------*/
666 extern
668
669/*----------------------------------------------------------------------------*/
670(
671 Volume *volume,
672 float dx,
673 float dy,
674 float dz
675);
676
677/*----------------------------------------------------------------------------*/
678 extern
680
681/*----------------------------------------------------------------------------*/
682(
683 Volume *volume,
684 float dx,
685 float dy,
686 float dz,
687 float dt
688);
689
690/*----------------------------------------------------------------------------*/
691 extern
693
694/*----------------------------------------------------------------------------*/
695(
696 Volume *volume,
697 int type
698);
699
700
701/*----------------------------------------------------------------------------*/
702 extern
704
705/*----------------------------------------------------------------------------*/
706(
707 Volume *volume,
708 int borderWidth
709);
710
711
712/*----------------------------------------------------------------------------*/
713 extern
715
716/*----------------------------------------------------------------------------*/
717(
718 Volume *volume,
719 int borderWidth
720);
721
722
723
724
725
726
727
728/*====================*
729 | |
730 | offset functions |
731 | |
732 *====================*/
733
734
735/*----------------------------------------------------------------------------*/
736 extern
738
739/*----------------------------------------------------------------------------*/
740(
741 Volume *volume
742);
743
744
745/*----------------------------------------------------------------------------*/
746 extern
748
749/*offset to first image point from data ptr*/
750/*----------------------------------------------------------------------------*/
751(
752 Volume *volume
753);
754
755/*----------------------------------------------------------------------------*/
756 extern
758
759/*offset to last image point from data ptr*/
760/*----------------------------------------------------------------------------*/
761(
762 Volume *volume
763);
764
765
766/*----------------------------------------------------------------------------*/
767 extern
769
770/*offset to next line*/
771/*----------------------------------------------------------------------------*/
772(
773 Volume *volume
774);
775
776
777/*----------------------------------------------------------------------------*/
778 extern
780
781/*offset from last image point of one line to first image point of next line*/
782/*----------------------------------------------------------------------------*/
783(
784 Volume *volume
785);
786
787
788/*----------------------------------------------------------------------------*/
789 extern
791
792/* offset to next slice */
793/*----------------------------------------------------------------------------*/
794(
795 Volume *volume
796);
797
798
799/*----------------------------------------------------------------------------*/
800 extern
802
803/*offset from last image point of a slice to first image point of next slice*/
804/*----------------------------------------------------------------------------*/
805(
806 Volume *volume
807);
808
809
810/*----------------------------------------------------------------------------*/
811 extern
813
814/*offset to next volume */
815/*----------------------------------------------------------------------------*/
816(
817 Volume *volume
818);
819
820
821/*----------------------------------------------------------------------------*/
822
824
825/*----------------------------------------------------------------------------*/
826(
827 Volume *volume
828);
829
830/*----------------------------------------------------------------------------*/
831 extern
833
834/* return byte size of volume type */
835/*----------------------------------------------------------------------------*/
836(
837 Volume *volume
838);
839
840
841
842/**********************************/
843/*Procedures for volume management*/
844/**********************************/
845
846/*----------------------------------------------------------------------------*/
847 extern
849
850/*----------------------------------------------------------------------------*/
851(
852 int xSize,
853 int ySize,
854 int zSize,
855 float xVoxelSize,
856 float yVoxelSize,
857 float zVoxelSize,
858 int type,
859 char *name,
860 int borderWidth
861);
862
863/*----------------------------------------------------------------------------*/
864 extern
866
867/*----------------------------------------------------------------------------*/
868(
869 int xSize,
870 int ySize,
871 int zSize,
872 int tSize,
873 float xVoxelSize,
874 float yVoxelSize,
875 float zVoxelSize,
876 float tVoxelSize,
877 int type,
878 char *name,
879 int borderWidth
880);
881
882/*----------------------------------------------------------------------------*/
883 extern
885
886/*----------------------------------------------------------------------------*/
887(
888 Volume *volume,
889 char *name
890);
891
892
893/*----------------------------------------------------------------------------*/
894 extern
896
897/*----------------------------------------------------------------------------*/
898(
899 Volume *sourceVolume,
900 Volume *destVolume
901);
902
903
904/*----------------------------------------------------------------------------*/
905 extern
907
908/*----------------------------------------------------------------------------*/
909(
910 Volume *volume
911);
912
913
914
915
916
917/*----------------------------------------------------------------------------*/
918 extern
920
921/*----------------------------------------------------------------------------*/
922(
923 int xSize,
924 int ySize,
925 int zSize,
926 float xVoxelSize,
927 float yVoxelSize,
928 float zVoxelSize,
929 int type,
930 char *name,
931 int borderWidth
932);
933
934/*----------------------------------------------------------------------------*/
935 extern
937
938/*----------------------------------------------------------------------------*/
939(
940 int xSize,
941 int ySize,
942 int zSize,
943 int tSize,
944 float xVoxelSize,
945 float yVoxelSize,
946 float zVoxelSize,
947 float tVoxelSize,
948 int type,
949 char *name,
950 int borderWidth
951);
952
953/*----------------------------------------------------------------------------*/
954
956/*
957VipTransferVolumeData ( fromVolume, toVolume );
958Copies the contents of 'fromVolume' to 'toVolume' (when
959enough place is present). It does not copy the borders.
960*/
961
962/*----------------------------------------------------------------------------*/
963(
964 Volume *volumeR,
965 Volume *volumeW
966);
967
968/*----------------------------------------------------------------------------*/
969 extern
971
972/*----------------------------------------------------------------------------*/
973(
974 Volume *volume,
975 char *name
976);
977
978
979
980/*----------------------------------------------------------------------------*/
981
983
984/*----------------------------------------------------------------------------*/
985(
986 Volume *volume
987);
988
989
990
991
992/*----------------------------------------------------------------------------*/
993 extern
995
996/*----------------------------------------------------------------------------*/
997(
998 Volume *volume
999);
1000
1001
1002/*----------------------------------------------------------------------------*/
1003 extern
1005/*----------------------------------------------------------------------------*/
1006(
1007 Volume *volume
1008);
1009
1010/*----------------------------------------------------------------------------*/
1011/*==========================*
1012 | |
1013 | input-output functions |
1014 | |
1015 *==========================*/
1016
1017
1018/*----------------------------------------------------------------------------*/
1020/*----------------------------------------------------------------------------*/
1021(
1022 const char *ima_name
1023);
1024/*----------------------------------------------------------------------------*/
1025
1027
1028/*give image format: VIDA, TIVOLI or PB*/
1029/*----------------------------------------------------------------------------*/
1030(
1031 const char *ima_name
1032);
1033
1034
1035/*----------------------------------------------------------------------------*/
1036 extern
1038
1039/* Read a volume from disk with 0 borderwidth */
1040/* if VIDA format: the volume is systematically return rescaled in S16BIT,
1041To get perfect rescaling in FLOAT, use VipReadVidaFloatVolume */
1042/* if TIVOLI format, the volume is read according to Tivoli image type*/
1043/*----------------------------------------------------------------------------*/
1044(
1045 const char *name
1046);
1047
1048/*----------------------------------------------------------------------------*/
1049 extern
1051
1052/* Read a volume from disk with positive or null borderwidth */
1053/* if VIDA format: the volume is systematically return rescaled in S16BIT,
1054To get perfect rescaling in FLOAT, use VipReadVidaFloatVolume */
1055/* if TIVOLI format, the volume is read according to Tivoli image type*/
1056/*----------------------------------------------------------------------------*/
1057(
1058 const char *name,
1059 int borderWidth
1060);
1061
1062
1063/*----------------------------------------------------------------------------*/
1064 extern
1066
1067/*switch toward Tivoli I/O*/
1068/*----------------------------------------------------------------------------*/
1069(
1070 const char *ima_name
1071);
1072
1073/*----------------------------------------------------------------------------*/
1074 extern
1076
1077/*switch toward Tivoli I/O*/
1078/*----------------------------------------------------------------------------*/
1079(
1080 const char *ima_name,
1081 int borderWidth
1082);
1083
1084/*----------------------------------------------------------------------------*/
1085 extern
1087
1088/*switch toward SPM I/O*/
1089/*----------------------------------------------------------------------------*/
1090(
1091 const char *ima_name
1092);
1093
1094/*----------------------------------------------------------------------------*/
1095 extern
1097
1098/*switch toward SPM I/O*/
1099/*----------------------------------------------------------------------------*/
1100(
1101 const char *ima_name,
1102 int borderWidth
1103);
1104
1105/*----------------------------------------------------------------------------*/
1106 extern
1108/* the volume is systematically return rescaled in S16BIT,
1109To get perfect rescaling in FLOAT, use VipReadVidaFloatVolume */
1110/*----------------------------------------------------------------------------*/
1111(
1112 const char *ima_name
1113);
1114
1115/*----------------------------------------------------------------------------*/
1116 extern
1118/* the volume is systematically return rescaled in S16BIT,
1119To get perfect rescaling in FLOAT, use VipReadVidaFloatVolume */
1120/*----------------------------------------------------------------------------*/
1121(
1122 const char *ima_name,
1123 int borderWidth
1124);
1125
1126
1127/*----------------------------------------------------------------------------*/
1128 extern
1130/* the volume is return in Float Perfectly scaled */
1131/*----------------------------------------------------------------------------*/
1132(
1133 const char *ima_name,
1134 int borderWidth
1135);
1136
1137/*----------------------------------------------------------------------------*/
1138 extern
1140/* the volume is return in Float Perfectly scaled */
1141/*----------------------------------------------------------------------------*/
1142(
1143 const char *ima_name
1144);
1145
1146/*----------------------------------------------------------------------------*/
1147 extern
1149/* the volume is return in Float Perfectly scaled */
1150/*----------------------------------------------------------------------------*/
1151(
1152 const char *ima_name,
1153 int fr1,
1154 int fr2
1155);
1156
1157/*----------------------------------------------------------------------------*/
1158 extern
1160/* the volume is systematically return rescaled in S16BIT,
1161To get perfect rescaling in FLOAT, use VipReadVidaFloatFrame */
1162/*----------------------------------------------------------------------------*/
1163(
1164 const char *ima_name,
1165 int fr1,
1166 int fr2
1167);
1168
1169/*----------------------------------------------------------------------------*/
1170 extern
1172/* return header of vida image */
1173/*----------------------------------------------------------------------------*/
1174(
1175 const char *ima_name
1176);
1177
1178/*----------------------------------------------------------------------------*/
1179 extern
1181/* The volume is systematically writen in VIDA without scale factors*/
1182/*----------------------------------------------------------------------------*/
1183(
1184 Volume *volume,
1185 const char *ima_name
1186);
1187
1188
1189/*----------------------------------------------------------------------------*/
1190 extern
1192/* The volume is writen in VIDA format with optimal scale factors*/
1193/*----------------------------------------------------------------------------*/
1194(
1195 Volume *volume,
1196 const char *ima_name
1197);
1198
1199/*----------------------------------------------------------------------------*/
1200 extern
1202/* The volume is writen in Tivoli format */
1203/*----------------------------------------------------------------------------*/
1204(
1205 Volume *volume,
1206 const char *ima_name
1207);
1208
1209/*----------------------------------------------------------------------------*/
1211/*----------------------------------------------------------------------------*/
1212(
1213 Volume *volume,
1214 const char *ima_name
1215);
1216/*----------------------------------------------------------------------------*/
1217
1218
1219
1220/*----------------------------------------------------------------------------*/
1221 extern
1223(
1224 const char *name,
1225 long *value
1226);
1227/*----------------------------------------------------------------------------*/
1228
1229/*----------------------------------------------------------------------------*/
1230 extern
1232(
1233 const char *name
1234);
1235/*----------------------------------------------------------------------------*/
1236
1237
1238
1239#ifdef __cplusplus
1240 }
1241#endif
1242
1243#endif /* VIP_VOLUME_H */
long oPointBetweenLine
Definition volume.h:60
long oSliceBetweenVolume
Definition volume.h:64
long oFirstPoint
Definition volume.h:57
long oLineBetweenSlice
Definition volume.h:62
long oLastPoint
Definition volume.h:58
struct swapfileNode * next
Definition volume.h:114
const char * swapfile
Definition volume.h:115
int VipTestTypeN(Volume *volume, int n,...)
Volume * VipCreate3DVolume(int xSize, int ySize, int zSize, float xVoxelSize, float yVoxelSize, float zVoxelSize, int type, char *name, int borderWidth)
long VipOffsetVolume(Volume *volume)
int VipSetShfjUnite(Volume *volume, int unite)
Volume * VipAllocVolumeStructure()
int VipBorderWidthOf(Volume *volume)
Volume * VipDeclare3DVolumeStructure(int xSize, int ySize, int zSize, float xVoxelSize, float yVoxelSize, float zVoxelSize, int type, char *name, int borderWidth)
long VipOffsetLastPoint(Volume *volume)
int VipTransferVolumeData(Volume *volumeR, Volume *volumeW)
long VipOffsetLine(Volume *volume)
long VipOffsetLineBetweenSlice(Volume *volume)
int VipTestState(Volume *volume, int state)
int VipSizeofType(Volume *volume)
int VipWriteVolume(Volume *volume, const char *ima_name)
Volume * VipCreate4DVolume(int xSize, int ySize, int zSize, int tSize, float xVoxelSize, float yVoxelSize, float zVoxelSize, float tVoxelSize, int type, char *name, int borderWidth)
Volume * VipReadVidaFloatFrame(const char *ima_name, int fr1, int fr2)
int VipVerifyAll(Volume *volume)
int VipShfjVmdType(Volume *volume)
int VipTestEqualBorderWidth(Volume *volume1, Volume *volume2)
int VipShfjUnite(Volume *volume)
void VipCopyVolumeHeader(Volume *sourceVolume, Volume *destVolume)
int VipResizeBorder(Volume *volume, int borderWidth)
int VipSetSizeX(Volume *volume, int nx)
Volume * VipReadVolume(const char *name)
int VIP_EXIT_IN_PRINTFEXIT
int VipAllocateVolumeData(Volume *volume)
int VipSet3DVoxelSize(Volume *volume, float dx, float dy, float dz)
int VipGet3DSize(Volume *volume, int *sizeX, int *sizeY, int *sizeZ)
int VipWriteSPMVolume(Volume *volume, const char *ima_name)
long VipOffsetPointBetweenLine(Volume *volume)
int VipSet4DVoxelSize(Volume *volume, float dx, float dy, float dz, float dt)
float VipShfjOffset(Volume *volume)
int VipGetImageFormat(const char *ima_name)
char * VipGetRTConfigString(const char *name)
char * VipGetVolumeName(Volume *volume)
int VipTypeOf(Volume *volume)
int VipGet3DVoxelSize(Volume *volume, float *voxelSizeX, float *voxelSizeY, float *voxelSizeZ)
char * VipTypeName(int type)
Volume * VipCopyVolume(Volume *volume, char *name)
int VipTestEqual4DSize(Volume *volume1, Volume *volume2)
int VipShfjDurationTime(Volume *volume, int frameNumber)
Volume * VipReadSPMVolumeWithBorder(const char *ima_name, int borderWidth)
int VipSetSizeZ(Volume *volume, int nz)
Volume * VipReadVidaVolume(const char *ima_name)
long VipGet3DSizeInVoxels(Volume *volume)
Volume * VipReadVidaFloatVolume(const char *ima_name)
int VipTestExistN(int n,...)
int VipFreeVolumeData(Volume *volume)
int VipTestExist(Volume *volume)
int VipSetShfjOffset(Volume *volume, float offset)
int VipSizetOf(Volume *volume)
Volume * VipReadVidaFrame(const char *ima_name, int fr1, int fr2)
Volume * VipReadTivoliVolumeWithBorder(const char *ima_name, int borderWidth)
long VipOffsetSlice(Volume *volume)
VipOffsetStruct * VipGetOffsetStructure(Volume *volume)
Volume * VipReadTivoliVolume(const char *ima_name)
int VipTestImageFileExist(const char *ima_name)
int VipSet3DSize(Volume *volume, int nx, int ny, int nz)
Volume * VipReadSPMVolume(const char *ima_name)
int VipGet4DSize(Volume *volume, int *sizeX, int *sizeY, int *sizeZ, int *sizeT)
Volume * VipDeclare4DVolumeStructure(int xSize, int ySize, int zSize, int tSize, float xVoxelSize, float yVoxelSize, float zVoxelSize, float tVoxelSize, int type, char *name, int borderWidth)
int VipMemoryMapping
int VipFreeVolume(Volume *volume)
int VipVerify2Dformat(Volume *volume)
int VipGet4DVoxelSize(Volume *volume, float *voxelSizeX, float *voxelSizeY, float *voxelSizeZ, float *voxelSizeT)
Volume * VipReadVidaVolumeWithBorder(const char *ima_name, int borderWidth)
int VipSizeyOf(Volume *volume)
int VipTestEqualType(Volume *volume1, Volume *volume2)
Volume * VipDuplicateVolumeStructure(Volume *volume, char *name)
float VipShfjScale(Volume *volume)
int VipTestType(Volume *volume, int type)
Volume * VipReadVidaFloatVolumeWithBorder(const char *ima_name, int borderWidth)
int VipSetShfjVmdType(Volume *volume, int vmdtype)
int VipWriteVidaScaledVolume(Volume *volume, const char *ima_name)
int VipSizexOf(Volume *volume)
int VipWriteTivoliVolume(Volume *volume, const char *ima_name)
int VipGetRTConfigLong(const char *name, long *value)
long VipGet3DSizeInBytes(Volume *volume)
int VipSetShfjScale(Volume *volume, float scale)
int VipSizezOf(Volume *volume)
int VipShfjStartTime(Volume *volume, int frameNumber)
int VipTestEqual3DSize(Volume *volume1, Volume *volume2)
int VipSetSizeY(Volume *volume, int ny)
Volume * VipReadVidaHeader(const char *ima_name)
int VipAddBorder(Volume *volume)
int VipTestEqual2DSize(Volume *volume1, Volume *volume2)
int VipSetBorderWidth(Volume *volume, int borderWidth)
int VipSetState(Volume *volume, int state)
int VipTestStateN(Volume *volume, int n,...)
int VipSetSizeT(Volume *volume, int nt)
Volume * VipReadVolumeWithBorder(const char *name, int borderWidth)
int VipSetVolumeName(Volume *volume, char *name)
long VipOffsetFirstPoint(Volume *volume)
long VipOffsetSliceBetweenVolume(Volume *volume)
int VipSet4DSize(Volume *volume, int nx, int ny, int nz, int nt)
int VipSetType(Volume *volume, int type)