My Project
vol.h
Go to the documentation of this file.
1/******************************************************************************
2 Copyright (c) 2003,2004 by Turku PET Centre
3
4 vol.h - definitions for vol.c
5
6 Version:
7 2003-12-18 Vesa Oikonen
8 Added 3D structures VOL and SVOL and related functions.
9 2004-01-29 VO
10 Added functions vol2img() and svol2img.
11 2004-08-23 VO
12 Some Doxygen style comments.
13
14
15
16******************************************************************************/
17#ifndef _VOL_H
18#define _VOL_H
19/*****************************************************************************/
21/*****************************************************************************/
22
23/*****************************************************************************/
24typedef struct {
25 int x; /* [1..dimx] */
26 int y; /* [1..dimy] */
27 int z; /* [1..dimz] */
28} VOL_PIXEL;
29typedef struct {
30 int x1, x2; /* [1..dimx] */
31 int y1, y2; /* [1..dimy] */
32 int z1, z2; /* [1..dimz] */
33} VOL_RANGE;
34/*****************************************************************************/
35
36/*****************************************************************************/
37/*
38 * 3D volume data structure - 4-byte float voxels
39 */
40typedef struct {
41
43 char status;
45 char *statmsg;
49 float sizex, sizey, sizez;
51 unsigned short int dimx, dimy, dimz;
53 float *_vxl, *_col, **_row, ***_pln;
55 float ***v, ***plane, **row, *column, *voxel;
56
57} VOL;
58/*****************************************************************************/
59/*
60 * 3D volume data structure - 2-byte short int voxels
61 */
62typedef struct {
63
65 char status;
67 char *statmsg;
71 float sizex, sizey, sizez;
73 unsigned short int dimx, dimy, dimz;
77 short int *_vxl, *_col, **_row, ***_pln;
79 short int ***v, ***plane, **row, *column, *voxel;
80
81} SVOL;
82/*****************************************************************************/
83
84/*****************************************************************************/
85/*
86 * Function definitions
87 */
88/* 4-byte floats */
89extern void volInit(VOL *vol);
90extern void volEmpty(VOL *vol);
91extern int volAllocate(VOL *vol, int planes, int rows, int columns);
92extern int img2vol(IMG *img, VOL *vol, int frame);
93extern int vol2img(VOL *vol, IMG *img, int frame);
94extern void volInfo(VOL *vol, FILE *fp);
95extern void volContents(VOL *vol, VOL_RANGE r, FILE *fp);
96extern int volMax(VOL *vol, VOL_RANGE r, VOL_PIXEL *p, float *maxv);
97extern int volAvg(VOL *vol, VOL_RANGE r, float *avg);
98/* 2-byte short ints */
99extern void svolInit(SVOL *svol);
100extern void svolEmpty(SVOL *svol);
101extern int svolAllocate(SVOL *svol, int planes, int rows, int columns);
102extern int img2svol(IMG *img, SVOL *svol, int frame);
103extern int svol2img(SVOL *svol, IMG *img, int frame);
104extern void svolInfo(SVOL *svol, FILE *fp);
105/*****************************************************************************/
106
107/*****************************************************************************/
108#endif /* _VOL_H */
109
Definition: img.h:156
Definition: vol.h:62
unsigned short int dimx
Definition: vol.h:73
short int * _col
Definition: vol.h:77
int orientation
Definition: vol.h:69
float scale_factor
Definition: vol.h:75
char status
Definition: vol.h:65
short int * column
Definition: vol.h:79
char * statmsg
Definition: vol.h:67
float sizex
Definition: vol.h:71
Definition: vol.h:24
int x
Definition: vol.h:25
int z
Definition: vol.h:27
int y
Definition: vol.h:26
Definition: vol.h:29
int z1
Definition: vol.h:32
int y1
Definition: vol.h:31
int x1
Definition: vol.h:30
Definition: vol.h:40
char status
Definition: vol.h:43
float * column
Definition: vol.h:55
unsigned short int dimx
Definition: vol.h:51
int orientation
Definition: vol.h:47
float sizex
Definition: vol.h:49
char * statmsg
Definition: vol.h:45
float * _col
Definition: vol.h:53
int volMax(VOL *vol, VOL_RANGE r, VOL_PIXEL *p, float *maxv)
Definition: vol.c:513
void svolInit(SVOL *svol)
Definition: vol.c:68
void volContents(VOL *vol, VOL_RANGE r, FILE *fp)
Definition: vol.c:480
int VOL_TEST
Definition: vol.h:20
int svolAllocate(SVOL *svol, int planes, int rows, int columns)
Definition: vol.c:221
void volInit(VOL *vol)
Definition: vol.c:45
void svolEmpty(SVOL *svol)
Definition: vol.c:120
int svol2img(SVOL *svol, IMG *img, int frame)
Definition: vol.c:401
int volAllocate(VOL *vol, int planes, int rows, int columns)
Definition: vol.c:156
void volInfo(VOL *vol, FILE *fp)
Definition: vol.c:431
void volEmpty(VOL *vol)
Definition: vol.c:91
void svolInfo(SVOL *svol, FILE *fp)
Definition: vol.c:455
int img2vol(IMG *img, VOL *vol, int frame)
Definition: vol.c:284
int img2svol(IMG *img, SVOL *svol, int frame)
Definition: vol.c:322
int volAvg(VOL *vol, VOL_RANGE r, float *avg)
Definition: vol.c:545
int vol2img(VOL *vol, IMG *img, int frame)
Definition: vol.c:367