VIP: Volume Image Processing


brain.h
Go to the documentation of this file.
1/*****************************************************************************
2 * PROJECT : V.I.P. Library
3 * MODULE NAME : Vip_brain.h * TYPE : Header
4 * AUTHOR : MANGIN J.F. * CREATION : 18/06/1997
5 * VERSION : 1.1 * REVISION :
6 * LANGUAGE : C * EXAMPLE :
7 * DEVICE : Ultra
8 *****************************************************************************
9 *
10 * DESCRIPTION :
11 *
12 *****************************************************************************
13 *
14 * USED MODULES :
15 *
16 *****************************************************************************
17 * REVISIONS : DATE | AUTHOR | DESCRIPTION
18 *--------------------|--------------|----------------------------------------
19 * / / | |
20 *****************************************************************************/
21
22
23
24#ifndef VIP_BRAIN_H
25#define VIP_BRAIN_H
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
31#include <stdio.h>
32#include <stdlib.h>
33#include <string.h>
34#include <stdarg.h>
35#include <limits.h>
36#include <errno.h>
37#include <math.h>
38
39#include <vip/util.h>
40#include <vip/volume.h>
41#include <vip/histo.h>
42#include <vip/morpho.h>
43#include <vip/talairach.h>
44
45
46#define VOID_LABEL 10
47#define GRAY_LABEL 100
48#define BRAIN_LABEL 150
49#define WHITE_LABEL 200
50#define FAT_LABEL 220
51
52
53/*---------------------------------------------------------------------------*/
55/*---------------------------------------------------------------------------*/
56
57/*---------------------------------------------------------------------------*/
58int VipDilateInPartialVolumeFar(Volume *vol, Volume *mask, int layer);
59/*---------------------------------------------------------------------------*/
60
61/*---------------------------------------------------------------------------*/
62// VipHisto *VipCreateHistogram(Volume *vol, Volume *mask, Volume *edges, int connectivity);
63int VipCreateHistogram(Volume *vol, Volume *mask, Volume *edges, int connectivity);
64/*---------------------------------------------------------------------------*/
65
66/*---------------------------------------------------------------------------*/
67int VipDilateVolumeBorder(Volume *vol, Volume *mask, int T_GRAY_CSF, int T_WHITE_FAT, int connectivity);
68/*---------------------------------------------------------------------------*/
69
70/*---------------------------------------------------------------------------*/
71int VipVolumeEdges(Volume *edges, Vip_S16BIT *edges_ptr, int seuil);
72/*---------------------------------------------------------------------------*/
73
74/*---------------------------------------------------------------------------*/
76Volume *vol,
77Volume *var,
79int T_GRAY_WHITE,
80int T_WHITE_FAT,
81int SEUIL_VAR
82);
83/*---------------------------------------------------------------------------*/
84
85/*---------------------------------------------------------------------------*/
87Volume *mask,
88Volume *vol1,
89Volume *vol2,
90int mode,
91int seuil_vol1,
92int seuil_vol2,
93int connectivity
94);
95/*---------------------------------------------------------------------------*/
96
97/*---------------------------------------------------------------------------*/
99Volume *mask,
100Volume *vol,
101Volume *variance,
102int distance,
103int mode,
104int seuil1,
105int seuil2,
106int connectivity
107);
108/*---------------------------------------------------------------------------*/
109
110/*---------------------------------------------------------------------------*/
112Volume *mask,
113Volume *vol1,
114Volume *vol2,
115int nb_iterations,
116int mode,
117int seuil_vol1,
118int seuil_vol2,
119int connectivity
120);
121/*---------------------------------------------------------------------------*/
122
123/*---------------------------------------------------------------------------*/
125Volume *vol,
126Volume *variance,
127Volume *edges,
128Volume *ridge,
130int dumb,
131int debug,
132float brain_erosion_size,
133int variance_threshold,
134int nb_iterations,
135float CA[3],
136float CP[3],
137float P[3]
138);
139/*---------------------------------------------------------------------------*/
140
141/*---------------------------------------------------------------------------*/
143Volume *vol,
145int dumb,
146int debug,
147float opening_size,
148float max_cortical_thickness,
149float white_erosion_size,
150float white_recovering_size,
151int nb_iterations,
152Volume *ridge
153);
154/*---------------------------------------------------------------------------*/
155
156/*---------------------------------------------------------------------------*/
157extern int VipPutOneSliceTwoZero(Volume *vol, int z);
158/*---------------------------------------------------------------------------*/
159
160/*---------------------------------------------------------------------------*/
162Volume *vol,
164int dumb,
165int debug
166);
167/*---------------------------------------------------------------------------*/
168
169/*---------------------------------------------------------------------------*/
171Volume *vol,
173int dumb,
174int debug,
175float brain_erosion_size,
176float brain_recovering_size,
177int nb_iterations,
178int iterative_erosion
179);
180/*---------------------------------------------------------------------------*/
181/*---------------------------------------------------------------------------*/
183Volume *vol,
185int dumb,
186int debug,
187float brain_erosion_size,
188float brain_recovering_size,
189float white_erosion_size,
190float white_recovering_size,
191int nb_iterations,
192VipTalairach *tal,
193int iterative_erosion
194);
195/*---------------------------------------------------------------------------*/
196
197
198/*---------------------------------------------------------------------------*/
200Volume *vol,
202int dumb,
203int debug
204);
205/*---------------------------------------------------------------------------*/
206
207
208/*---------------------------------------------------------------------------*/
209int VipFillWhiteCavities(Volume *vol, Volume *brainmask, VipT1HistoAnalysis *ana, int maxsize);
210/*---------------------------------------------------------------------------*/
211/*---------------------------------------------------------------------------*/
213Volume *vol,
214int dumb,
215int debug,
216int Tlow,
217int Thigh
218);
219/*---------------------------------------------------------------------------*/
220
221/*---------------------------------------------------------------------------*/
223Volume *vol,
224int dumb,
225int debug,
226float brain_erosion_size,
227float brain_dilation_size,
228int Tlow,
229int Thigh
230);
231/*---------------------------------------------------------------------------*/
232/*---------------------------------------------------------------------------*/
234Volume *vol,
236int dumb,
237int debug,
238float white_erosion_size,
239int white_recovering_size,
240float brain_erosion_size,
241int brain_recovering_size,
242int nb_iterations
243);
244/*---------------------------------------------------------------------------*/
245
246/*---------------------------------------------------------------------------*/
248Volume *vol,
250int dumb,
251int debug
252);
253
254/*---------------------------------------------------------------------------*/
256Volume *vol,
258int dumb,
259int debug,
260float brain_erosion_size,
261int brain_recovering_size,
262int nb_iterations
263);
264/*---------------------------------------------------------------------------*/
265/*---------------------------------------------------------------------------*/
267int dumb);
268/*---------------------------------------------------------------------------*/
269/*---------------------------------------------------------------------------*/
271int dumb, int nb_iterations, float KPOTTS, int connectivity);
272/*---------------------------------------------------------------------------*/
273/*---------------------------------------------------------------------------*/
275/*---------------------------------------------------------------------------*/
276/*---------------------------------------------------------------------------*/
278int dumb, int nb_iterations);
279/*---------------------------------------------------------------------------*/
280extern int VipGrayWhiteClassificationForVoxelBasedNeighbourhood(Volume *vol, Volume *classif, Volume *matter, int dumb, int nb_iterations, int threshold, int connectivity, int label);
281/*---------------------------------------------------------------------------*/
282/*---------------------------------------------------------------------------*/
283extern Volume *VipGrayWhiteRegularisationForVoxelBasedAna(Volume *vol, Volume *classif, VipT1HistoAnalysis *ana, int dumb, int nb_iterations, float KPOTTS, int connectivity);
284/*---------------------------------------------------------------------------*/
285/*-------------------------------------------------------------------------*/
287/*-------------------------------------------------------------------------*/
288
289/*---------------------------------------------------------------------------*/
290extern int VipCleaningTopo(Volume *vol, Volume *matter, Volume *classif, int dumb, int nb_iterations, int label, int threshold);
291/*---------------------------------------------------------------------------*/
292
293/*---------------------------------------------------------------------------*/
294extern int VipCleaningConnectivity(Volume *vol, int connectivity, int type);
295/*---------------------------------------------------------------------------*/
296
297/*---------------------------------------------------------------------------*/
299int dumb, int nb_iterations,int T_VOID_GRAY_LOW, int T_VOID_GRAY_HIGH,
300int T_WHITE_FAT_LOW, int T_WHITE_FAT_HIGH, int T_GRAY_WHITE);
301/*---------------------------------------------------------------------------*/
302
303/*---------------------------------------------------------------------------*/
305int dumb, int nb_iterations);
306/*---------------------------------------------------------------------------*/
307
308/*---------------------------------------------------------------------------*/
310 int dumb);
311/*---------------------------------------------------------------------------*/
312
313/*---------------------------------------------------------------------------*/
315 int T_VOID_GRAY_LOW, int T_VOID_GRAY_HIGH,
316 int T_GRAY_WHITE_LOW, int T_GRAY_WHITE_HIGH,
317 int T_WHITE_FAT, int dumb);
318/*---------------------------------------------------------------------------*/
319
320/*---------------------------------------------------------------------------*/
321extern int VipErosionClassificationNeighbourhood( Volume *classif, Volume *graylevel, VipT1HistoAnalysis *ana, int nb_iteration, int object, int inside, int outside );
322/*-------------------------------------------------------------------------*/
323
324/*---------------------------------------------------------------------------*/
326Volume *vol,
327Volume *graylevel,
328Volume *classif,
329int nb_iteration,
330int object,
331int inside,
332int outside,
333float KISING,
334float sigmaG,
335float sigmaW,
336int label
337);
338/*-------------------------------------------------------------------------*/
339
340/*-------------------------------------------------------------------------*/
341extern int VipRegularisation(Volume *vol, int label);
342/*-------------------------------------------------------------------------*/
343
344#ifdef __cplusplus
345}
346#endif
347
348#endif /* VIP_BRAIN_H */
349
350
int VipGetBrainStandard(Volume *vol, VipT1HistoAnalysis *ana, int dumb, int debug, float brain_erosion_size, float brain_recovering_size, int nb_iterations, int iterative_erosion)
int VipVolumeEdges(Volume *edges, Vip_S16BIT *edges_ptr, int seuil)
int VipGetBrain2005(Volume *vol, VipT1HistoAnalysis *ana, int dumb, int debug, float opening_size, float max_cortical_thickness, float white_erosion_size, float white_recovering_size, int nb_iterations, Volume *ridge)
int VipCreateHistogram(Volume *vol, Volume *mask, Volume *edges, int connectivity)
int VipGetBrainForRenderingSimple(Volume *vol, VipT1HistoAnalysis *ana, int dumb, int debug)
Volume * VipCSFGrayWhiteFatClassificationRegularisationForRobustApproach(Volume *vol, VipT1HistoAnalysis *ana, int dumb, int nb_iterations, int T_VOID_GRAY_LOW, int T_VOID_GRAY_HIGH, int T_WHITE_FAT_LOW, int T_WHITE_FAT_HIGH, int T_GRAY_WHITE)
int VipPropagationConnectivity(Volume *mask, Volume *vol1, Volume *vol2, int mode, int seuil_vol1, int seuil_vol2, int connectivity)
int VipFillWhiteCavities(Volume *vol, Volume *brainmask, VipT1HistoAnalysis *ana, int maxsize)
int VipGetBrainCustomized(Volume *vol, VipT1HistoAnalysis *ana, int dumb, int debug, float brain_erosion_size, float brain_recovering_size, float white_erosion_size, float white_recovering_size, int nb_iterations, VipTalairach *tal, int iterative_erosion)
int VipGetBrainForRenderingDoubleCustomized(Volume *vol, VipT1HistoAnalysis *ana, int dumb, int debug, float white_erosion_size, int white_recovering_size, float brain_erosion_size, int brain_recovering_size, int nb_iterations)
Volume * VipCSFBrainFatClassificationRegularisation(Volume *vol, VipT1HistoAnalysis *ana, int dumb, int nb_iterations)
int VipDilateInPartialVolume(Volume *vol, Volume *mask)
int VipPropagationReflux(Volume *mask, Volume *vol1, Volume *vol2, int nb_iterations, int mode, int seuil_vol1, int seuil_vol2, int connectivity)
int VipGetBrainForRenderingSimpleCustomized(Volume *vol, VipT1HistoAnalysis *ana, int dumb, int debug, float brain_erosion_size, int brain_recovering_size, int nb_iterations)
int VipRegularisation(Volume *vol, int label)
int VipGetBrainForRenderingFast(Volume *vol, int dumb, int debug, int Tlow, int Thigh)
int VipHomotopicErosionFromInsideSnakeNeighbourhood(Volume *vol, Volume *graylevel, Volume *classif, int nb_iteration, int object, int inside, int outside, float KISING, float sigmaG, float sigmaW, int label)
int VipDilateVolumeBorder(Volume *vol, Volume *mask, int T_GRAY_CSF, int T_WHITE_FAT, int connectivity)
int VipGetBrain2010(Volume *vol, Volume *variance, Volume *edges, Volume *ridge, VipT1HistoAnalysis *ana, int dumb, int debug, float brain_erosion_size, int variance_threshold, int nb_iterations, float CA[3], float CP[3], float P[3])
int VipDilateInPartialVolumeFar(Volume *vol, Volume *mask, int layer)
int VipCreateBrainSeed(Volume *vol, Volume *var, VipT1HistoAnalysis *ana, int T_GRAY_WHITE, int T_WHITE_FAT, int SEUIL_VAR)
int VipCleaningTopo(Volume *vol, Volume *matter, Volume *classif, int dumb, int nb_iterations, int label, int threshold)
Volume * VipGrayWhiteClassificationRegularisationForRobust2005(Volume *vol, VipT1HistoAnalysis *ana, int T_VOID_GRAY_LOW, int T_VOID_GRAY_HIGH, int T_GRAY_WHITE_LOW, int T_GRAY_WHITE_HIGH, int T_WHITE_FAT, int dumb)
int VipGetBrainForRenderingFastCustomized(Volume *vol, int dumb, int debug, float brain_erosion_size, float brain_dilation_size, int Tlow, int Thigh)
int VipGrayRegularisation(Volume *vol)
int VipPropagationWithRefluxConnectivity(Volume *mask, Volume *vol, Volume *variance, int distance, int mode, int seuil1, int seuil2, int connectivity)
int VipGetBrainForRenderingDouble(Volume *vol, VipT1HistoAnalysis *ana, int dumb, int debug)
Volume * VipGrayWhiteClassificationRegularisationForRobust(Volume *vol, VipT1HistoAnalysis *ana, int dumb)
Volume * VipGrayWhiteClassificationForVoxelBasedAna(Volume *vol, VipT1HistoAnalysis *ana, float threshold)
Volume * VipGrayWhiteClassificationRegularisation(Volume *vol, VipT1HistoAnalysis *ana, int dumb)
Volume * VipGrayWhiteRegularisationForVoxelBasedAna(Volume *vol, Volume *classif, VipT1HistoAnalysis *ana, int dumb, int nb_iterations, float KPOTTS, int connectivity)
int VipGrayWhiteClassificationForVoxelBasedNeighbourhood(Volume *vol, Volume *classif, Volume *matter, int dumb, int nb_iterations, int threshold, int connectivity, int label)
Volume * VipCSFGrayWhiteFatClassificationRegularisation(Volume *vol, VipT1HistoAnalysis *ana, int dumb, int nb_iterations)
int VipErosionClassificationNeighbourhood(Volume *classif, Volume *graylevel, VipT1HistoAnalysis *ana, int nb_iteration, int object, int inside, int outside)
int VipGetBrain(Volume *vol, VipT1HistoAnalysis *ana, int dumb, int debug)
int VipCleaningConnectivity(Volume *vol, int connectivity, int type)
Volume * VipGrayWhiteClassificationRegularisationForVoxelBasedAna(Volume *vol, VipT1HistoAnalysis *ana, int dumb, int nb_iterations, float KPOTTS, int connectivity)
int VipPutOneSliceTwoZero(Volume *vol, int z)
struct vip_T1histogram_analysis VipT1HistoAnalysis
signed short Vip_S16BIT
Definition structure.h:93